2009-09-30 8 views

Respuesta

11

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.

4

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.

Cuestiones relacionadas