Tengo COM dll que estoy usando en C++/Cli, uno de los métodos en este COM dll devuelve IntPtr Quiero convertir eso de nuevo en el puntero del objeto nativo. Como puedo hacer eso ? favor de ponerCómo convertir IntPtr al objeto nativo de C++
Respuesta
IntPtr es un tipo integral, es necesario convertir primero a un tipo de puntero:
IntPtr somePtr;
...
Mumble* fooPtr = (Mumble*)(void*)somePtr;
O la versión más legible:
Mumble* fooPtr = (Mumble*)somePtr.ToPointer();
se optimizará La llamada al método de distancia en tiempo de ejecución.
IntPtr
tiene un método ToPointer
que devuelve void*
. Llame a este método, luego use reintepret_cast
para convertir este puntero al tipo nativo correcto.
Creo que debería estar bien usar un 'static_cast' en este caso. No conozco ninguna buena razón para 'reintepret_cast' un void-pointer a otro tipo de puntero. –
me gustaría modificar Hans Passant's answer,
IntPtr
devuelve directamente vacío puntero .. que se puede lanzar fácilmente en cualquier tipo de C++ nativo puntero.
IntPtr somePtr;
Mumble* fooPtr = (Mumble*)somePtr.ToPointer();
aquí .ToPointer()
volverá puntero nulo, ahora se puede lanzar a su tipo de puntero personalizado.
- 1. C# Convertir IntPtr en int
- 2. Convertir del puntero C++/CLI al puntero nativo de C++
- 3. Cómo convertir IntPtr en byte *
- 4. ¿Cómo se puede convertir un objeto UIntPtr a IntPtr en C#?
- 5. C# punteros vs IntPtr
- 6. ¿Cómo puedo convertir un tipo IntPtr no administrado en una cadena C#?
- 7. Cómo liberar IntPtr en C#?
- 8. IntPtr vs ref C#
- 9. Cómo convertir datos jQuery.serialize() al objeto JSON?
- 10. Convertir objeto a enum C#
- 11. C# Convertir objeto a Decimal
- 12. Convertir cadena de consulta del/al objeto
- 13. Cómo convertir el Datareader Resultado de DbType.Time al objeto Timespan?
- 14. traer datarow al objeto C#
- 15. Cómo compilar ocaml al código nativo
- 16. Convertir objeto de cadena JSON en C#
- 17. Three.js portado al código nativo?
- 18. hacen IntPtr en C# .NET punto de valor de cadena
- 19. Convertir objeto .Net al objeto JSON en la vista
- 20. Usando código C++ nativo en C# - problema con std :: vector
- 21. Revertir ToStringBuilder: convertir cadena al objeto
- 22. convertir una cadena json al objeto python
- 23. Reproducción de sonido en C++ utilizando llamadas al sistema nativo?
- 24. ¿Java tiene soporte nativo para eventos, similar al de C#?
- 25. ¿Cómo convertir un objeto al tipo pasado a una función?
- 26. Convertir ejecutable .NET en ejecutable nativo
- 27. Convertir cadena JSON en C# Objeto
- 28. C# convert UTC int al objeto DateTime
- 29. Interoperativo nativo de C++ y C#
- 30. Cómo organizar la recopilación en C# para pasar al código nativo (C++)
Debe proporcionar las declaraciones para el método COM y el "objeto nativo". – logicnp