Bonjour,
(Visual Studio 2005)
J'ai une classe d�clar�e :
Je voudrais r�cup�rer un pointeur void * d'une instance de cette classe. J'ai donc proc�d� ainsi :
Code : S�lectionner tout - Visualiser dans une fen�tre � part public ref class MyClass{ ... }
Mais � l'�x�cution du StructureToPtr j'obtiens :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 // je crée un IntPtr alloué avec la taille de l'objet dont je veux récupérer un pointeur int rawsize = sizeof( this ); IntPtr objectAddress = System::Runtime::InteropServices::Marshal::AllocHGlobal( rawsize ); // je convertis mon objet en IntPtr System::Runtime::InteropServices::Marshal::StructureToPtr(this, (IntPtr)objectAddress, true); // et hop j'ai mon pointeur void * ptr = (void *)objectAddress;
De ce que j'ai compris, les variables blittable sont de type simple (bool, int, etc).
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 Additional information: La structure spécifiée doit être blittable ou avoir des informations de disposition.
Et effectivement ma classe contient des objets de classe plus complexe. Donc elle n'est pas blittable ? Je fais comment alors ?
De plus pourquoi doit-on allouer de la m�moire pour r�cup�rer un pointeur sur un objet qui est d�j� allou� ?
Merci.
Flo.
Partager