我这是在c++的Win32 DLL中定义类似如下结构:与二维数组PInvoke的回报结构
typedef struct matrix
{
double** data;
int m;
int n;
} Matrix;
而且还有一个功能:
Matrix getMatrix(void);
Matrix getMatrix()
{
Matrix mat;
mat.m = 2;
mat.n = 2;
mat.data = (double**) malloc (sizeof(double*) * 4);
mat.data[0] = (double*) malloc (sizeof(double) * 2);
mat.data[1] = (double*) malloc (sizeof(double) * 2);
mat.data [0][0]=1;
mat.data [0][1]=2;
mat.data [1][0]=3;
mat.data [1][1]=4;
return mat;
}
如何我是否可以捕获此函数的返回值如果我正在使用来自C#应用程序的P/Invoke
这看起来像C比C++多。 – juanchopanza
我会认为'double **'转换为'double [] []'。不确定是否必须用属性修饰它才能让它正常工作。 –
@lc。你需要手动编组 –