J'ai une DLL non managée avec une fonction qui prend un pointeur comme argument. Comment puis-je passer un pointeur de C# sans être «dangereux»?Comment puis-je passer un pointeur de C# à une DLL non managée?
Voici quelques exemples de code:
[DllImport(@"Bird.dll")]
private static extern bool foo(ushort *comport);
L'entrée correspondante dans l'en-tête:
BOOL DLLEXPORT foo(WORD *pwComport);
Lorsque je tente et simplement déréférencer (&comport
), je reçois une erreur disant: "Pointeurs et les tampons de taille fixe ne peuvent être utilisés que dans un contexte non sécurisé "
Comment puis-je contourner ce problème?
Oh mec c'est simple! –