Je struct qui est défini dans c++ Win32 DLL comme ce qui suit:PInvoke struct retour avec tableau à deux dimensions
typedef struct matrix
{
double** data;
int m;
int n;
} Matrix;
Et il y a une fonction:
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;
}
Comment puis-je capturer la valeur de retour de cette fonction? Si j'utilise P/Invoke
à partir d'une application C#
Cela ressemble à C plus C++. – juanchopanza
Je pense que 'double **' se traduit par 'double [] []'. Vous ne savez pas si vous devez le décorer avec un attribut pour le faire fonctionner correctement. –
@lc. Vous devez le marshaler manuellement –