Je suis content de voir qu'il y'a des gens qui ont galérés sur les dll's et les passages de pointeur....
J'ai compris ce que vous aviez fait mais de mon côté je galère car je dois passer un tableau à 2 dimensions....
je dois utiliser cette fonction dans ma dll:
int MSTX_EXPORT S00X_ReadPageC240(BOOL readc240, unsigned char blocknb, unsigned char firstpage, unsigned char nbpages, unsigned char pages[][S00X_ANTICOLL_ARRAY], unsigned char *cmdstatus);
dans mon code en C#, je l'ai déclarée de cette manière:
[DllImport("MedioSTX.dll")]
static extern unsafe int S00X_ReadPageC240(bool readc240, char blocknb, char firstpage, char nbpages, char** pages, char* cmdstatus);
depuis ma fonction je l'appelle de cette façon:
char[][] pages= new char[4][];
for (int i = 0; i < 4; i++)
pages[i] = new char[8];
char cmdstatus = '0';
fixed( char** pBuffer = pages[0] )
{
S00X_ReadPageC240(true, (char)0, (char)0, (char)1, pBuffer, &cmdstatus);
}
Si quelqu'un pouvait m'expliquer comment je peux passer mon char[][] pages dans la dll pour qu'elle l'initialise.
Merci d'avance pour votre aide...
A+