J'ai dll COM que j'utilise en C++/Cli, l'un de la méthode dans ce COM dll retourne IntPtr Je veux convertir cela en arrière au pointeur d'objet natif. Comment je peux faire ça? s'il vous plaît à mettreComment faire pour convertir IntPtr en objet C++ natif
Répondre
IntPtr est un type intégral, vous devez d'abord le convertir en un type de pointeur:
IntPtr somePtr;
...
Mumble* fooPtr = (Mumble*)(void*)somePtr;
Ou la version plus lisible:
Mumble* fooPtr = (Mumble*)somePtr.ToPointer();
L'appel de méthode sera optimisé loin à l'exécution.
IntPtr
a une méthode ToPointer
qui renvoie un void*
. Appelez cette méthode, puis utilisez reintepret_cast
pour convertir ce pointeur en type natif.
Je pense qu'il devrait être bon d'utiliser un 'static_cast' dans ce cas. Je ne connais pas de bonne raison pour 'reintepret_cast 'un pointeur vide vers un autre type de pointeur. –
Je souhaite modifier Hans Passant's answer,
IntPtr
retourne directement pointeur vide .. que vous pouvez lancer facilement dans tout type de natif C++ pointeur.
IntPtr somePtr;
Mumble* fooPtr = (Mumble*)somePtr.ToPointer();
ici .ToPointer()
retournera pointeur vide, vous pouvez jeter à votre type de pointeur personnalisé.
- 1. comment convertir bitmap en intptr en C#
- 2. Comment faire pour convertir IntPtr de HIMAGELIST en Bitmap/Image
- 3. Convertir IntPtr en int * en C#?
- 4. Comment convertir un IntPtr de nouveau dans un objet
- 5. Comment convertir un IntPtr en flux?
- 6. Comment faire pour marcher un objet natif dans WinDbg?
- 7. convertir jar en dll natif
- 8. Comment un objet UIntPtr peut-il être converti en IntPtr en C#?
- 9. Rhino - Convertir la carte de paramètres en objet JS natif
- 10. Comment faire pour convertir "21:00 EST" en objet Date
- 11. Comment faire pour convertir une structure C++ en structure C#
- 12. Comment faire pour convertir Excel.Range.Interior.Color en System.Drawing.Color en C#?
- 13. Comment faire pour convertir DateTime en shortdatetime en C#?
- 14. Comment faire pour convertir NSArray en NSString
- 15. Marshalling ref IntPtr à BSTR * en C#
- 16. Comment faire pour convertir le code ActionScript en code c?
- 17. Comment faire pour convertir BMP en AVI C#
- 18. Comment faire pour convertir la chaîne à int en C
- 19. Comment faire pour convertir "~/default.aspx" en "http://www.website.com/default.aspx" C#?
- 20. Comment faire pour convertir un seul canal IplImage * en Bitmap^
- 21. Comment convertir un objet récursif en Collection en C#?
- 22. Comment convertir un délégué en objet en C#?
- 23. Convertir vm en natif/dual-boot
- 24. C# HEX Valeur à IntPtr
- 25. Java Pointer vs C# IntPtr
- 26. Comment faire pour convertir NSString en octets
- 27. Comment faire pour convertir HTML en BBCode
- 28. Comment faire pour convertir MethodCallExpression en BinaryExpression
- 29. Pouvez-vous convertir un objet en C#?
- 30. Comment convertir un objet en double?
Vous devez fournir les déclarations pour la méthode COM et "l'objet natif". – logicnp