¿Es posible P/Invocar una biblioteca C++ pura, o tiene que estar envuelto en C?P/Invoque una biblioteca puramente C++?
Respuesta
Las bibliotecas de C++ pueden ser P/invocadas, pero necesitará usar "depends" para encontrar los nombres de métodos mutilados (nombres como "@ 0! Classname @ classname @ zz") y por ejemplo los métodos usan "ThisCall" llamando a la convención en el p/invoke y pasar la referencia de la instancia como primer argumento (puede almacenar el resultado del constructor dentro de un IntPtr).
Otra alternativa es C++/CLI. –
Este es un consejo terrible. Incluso si es técnicamente posible, se encontrará con MUCHOS problemas tratando de invocar en clases de C++. Por ejemplo, los constructores y los destructores no se llamarán correctamente, el manejo de memoria .NET no es compatible con C++ 'new' y' delete', y así sucesivamente. C++/CLI es una idea mucho mejor. –
¿cómo puede ser esta la respuesta? –
Una biblioteca C++ "pura" tendrá su nombre destrozado por el compilador, por lo que será difícil obtener la declaración P/Invoke correcta. Y un método C obtiene un guión bajo al principio, que puede no estar allí en C++. Y un método de C++ necesita una instancia como primer parámetro, debería dársela usted mismo.
Creo que debe ajustar su API de C++ en una serie de métodos compatibles con C.
- 1. ¿Es un rasgo de C++ is_lambda, puramente implementado como una biblioteca, imposible?
- 2. En C++, ¿es posible tener una función puramente virtual definida?
- 3. Pilas blandas puramente funcionales
- 4. Montones eficientes en idiomas puramente funcionales
- 5. ¿Por qué es determinante si una función es puramente difícil?
- 6. Renderizar texto en una aplicación de Android puramente nativa
- 7. biblioteca c/C++ NLP
- 8. ¿Cómo usar una biblioteca C++ en una aplicación C#?
- 9. ¿Cómo construir una biblioteca estática Objective-C?
- 10. ¿Hay una biblioteca jQuery escrita en C#?
- 11. Enlazar una biblioteca de Python TO C
- 12. ¿Hay una biblioteca LINQ para C++?
- 13. C# Biblioteca para una fácil reflexión dinámica
- 14. ¿Hay una biblioteca de plataforma cruzada C++?
- 15. Una biblioteca C++ para filtro IIR
- 16. Una buena biblioteca de C++ para SOAP
- 17. ¿Cómo usar una biblioteca C de D?
- 18. registro en una biblioteca de C#
- 19. ¿Objective-C tiene una biblioteca estándar?
- 20. Estructura de directorios para una biblioteca C++
- 21. Haciendo que una biblioteca C sea segura
- 22. C: Diagramación de una gran biblioteca
- 23. ¿Existen esquemas o Lisps puramente funcionales?
- 24. Cargando FMOD puramente de código nativo
- 25. biblioteca C++ con interfaz c
- 26. ¿Es posible implementar una versión js del descomprimido de Haskell de una manera puramente funcional?
- 27. Accediendo a una biblioteca .lib de C++ desde C#
- 28. Recomendación para una biblioteca de análisis HTTP en C/C++
- 29. biblioteca portátil zip para C/C++ (no es una aplicación)
- 30. P/Invoke o C++/CLI para envolver una biblioteca C
Mira este artículo de CodeProject: http://www.codeproject.com/KB/mcpp/usingcppdll.aspx – dalle