J'ai une DLL (C#) appelée par un système tiers.Comment je peux convertir le pointeur vide en struct en C#
Ce système appelle la fonction fnSys et passe en tant que pointeur de void en tant que paramètre. Maintenant, j'ai besoin de jeter ce vide * dans ma structure.
Mon code est:
public struct Menu
{
public string str1;
public string str2;
}
public static unsafe int fnSys(void* value)
{
if (value!=null)
{
System.Windows.Forms.MessageBox.Show("msg");
}
return 1;
}
Maintenant, lorsque l'appel système tiers cette fonction boîte de message apparaît, mais je ne peux pas comprendre comment puis-je convertir cette valeur en MenuItem. Aussi je essayé comme ceci:
Menu menu = (Menu)Marshal.PtrToStructure(value, typeof(Menu));
mais cela ne fonctionne pas.
Y a-t-il des moyens?
* "ne fonctionne pas" * n'a pas de sens. Comment cela échoue-t-il? Oh, et afficher la structure C utilisée par l'appelant. –
Cela ne devrait-il pas être juste 'Menu menu = (Menu) valeur;'? – AustinWBryan