Amigo, eso cambia las cosas. Evidentemente no puedes exportar un método de una clase si no conoces la definición de la clase. Y aun conociéndola sería difícil, ya que deberías reproducir dicha clase
con exactitud. Lo resalto porque esa exactitud ha de ser a nivel de octeto (
byte), lo cual es muy difícil conseguir con Delphi.
Para hacerlo es necesario crear una función o procedimiento de molde. Un ejemplo en C++ (compilador desconocido):
Código:
class TMiClase
{
public:
void Metodo (void) { ; }
};
extern "C" TMiClase* CreaObjeto (void) __dlldecl
{
return new TMiclase ();
}
extern "C" void MoldeAMetodo (TMiClase *Objeto) __dlldecl
{
Objeto->Metodo ();
}
// Etcétera...
Ahora sí, en Delphi:
Código Delphi
[-]
UNIT MetodosExportados;
INTERFACE
TYPE
TMiClase = POINTER;
FUNCTION CreaObjeto: TMiClase; CDECL; EXTERNAL 'original.dll';
PROCEDURE MoldeAMetodo (Objeto: TMiClase); CDECL; EXTERNAL 'original.dll';
IMPLEMENTATION
END.