¿Hay alguna manera de usar las clases de C++ exportadas por un dll win32 en Delphi para win32? ¿Hay otras formas de archivar cosas similares (COM, .NET, ...)?Cómo usar las clases de C++ exportadas por un dll en Delphi
Respuesta
No puede importar una clase. Solo puedes importar funciones. Rudy Velthuis has written at length on the topic. Aunque no se puede utilizar directamente una clase exportada C++, que describe un par de técnicas para lograr el mismo efecto:
"aplanar" el objeto, por lo que en el lado llamante no hay objeto más, simplemente un puntero que se pasa al DLL junto con otros parámetros para una serie de funciones que envuelven los métodos del objeto. Escribir el contenedor es muy simple, aunque puede ser tedioso.
Utilice clases virtuales puras. Los compiladores de Windows C++ y Delphi generalmente tienen los mismos diseños de VMT, por lo que si la clase de C++ puede describirse mediante una lista de métodos virtuales puros, puede crear una declaración Delphi equivalente, realizar algún tipo de conversión con el puntero de objeto devuelto por el DLL. y proceder.
Ejemplos completos de ambas formas se dan en el artículo.
No se pueden usar clases de C++ exportadas desde un archivo DLL hasta donde yo sé en Delphi; puede usar funciones C y puede importar clases COM a Delphi.
- 1. Unidad probando clases no exportadas en una DLL
- 2. Listado de las funciones exportadas de un archivo DLL
- 3. ¿Por qué las DLL de Delphi pueden usar WideString sin usar ShareMem?
- 4. Cómo usar un dll C# en IronPython
- 5. Cómo depurar un archivo DLL en Delphi
- 6. Cuándo usar las clases en C#?
- 7. Cómo usar C# Dll en vC++?
- 8. ¿Puede Delphi solo usar un .dll si es necesario?
- 9. Llamar a C# dll desde Delphi
- 10. Usar clases internas en C#
- 11. las funciones de llamada desde un archivo DLL en C++ Delphi
- 12. DLL de Delphi en C# - array var como parámetro
- 13. ¿Mejores recursos para convertir cabeceras dll C/C++ a Delphi?
- 14. Cómo hago que NUnit ejecute las pruebas F # no exportadas por un módulo
- 15. Usar DLL en C sin lib
- 16. ¿Puedo usar una DLL .NET en "Delphi 2007 for Win32"?
- 17. Cargando DLL no inicializando clases C++ estáticas
- 18. Llamar a un método delphi DLL desde C# Code
- 19. Derivado de las clases generadas por Entity Framework en C#
- 20. ¿Cómo puedo usar el código Delphi desde una aplicación C#?
- 21. Singleton - ¿Por qué usar clases?
- 22. ¿Es posible depurar un dll generador de C++ desde Delphi si tengo el código fuente dll?
- 23. ¿Cómo puedo usar un dll C# (managed) que no tengo?
- 24. Cómo organizar las clases de C#
- 25. Usar correctamente las clases en otras clases en php?
- 26. Cómo usar las clases PrintServer y PrintQueue
- 27. ¿Puedo separar un dll grande en 1 dll por clase?
- 28. ¿Cómo usar las clases PrintWriter y File en Java?
- 29. llamada Delphi DLL de C++ \ CLI con muchos parámetros
- 30. C#: Cómo crear "alias" para las clases