Ver Mensaje Individual
  #3  
Antiguo 04-06-2018
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
Gracias engranaje por responder


Cita:
Empezado por engranaje Ver Mensaje

Si no me he perdido en todo esto TMyObjectDLL no es mas que una instancia de la clase TClassMyObject. Pero al final no deja de ser mas que una variable,
no puedes hacer que TOtraMyClass sea una clase hija de TMyObjectDll porque como te dice el mensaje TMyObjectDll no es un TYPE. Podrías hacer:
Código Delphi [-]
   TOtraMyClass= class(TClassMyObject )
[/delphi]
Quizas no me explique bien en mi post anterior..., y si como bien dices TMyObjectDLL es una instancia de la clase TClassMyObject, el tema es que la clase TClassMyObject esta solamente definida en la DLL y no en la aplicacion. A priori la aplicación solo sabe que es una clase descendiente de TMyAbstractObject pero no sabe mas.

Aquí dejo un enlace a la estructura del programa

y aquí dejo el código fuente por si alguien quiere hacer pruebas:
https://www.megaupload.us/10ip/MiEjemplo.rar

La idea original que pretendo es cargar una clase desde una DLL, Al igual que cuando se utiliza una función definida en una DLL el programa solo sabe el nombre de la función y los parámetros que utiliza, sin conocer mas nada sobre dicha función y se carga de esta manera

Código Delphi [-]
  function MiFuncion : string; stdcall; external 'MiDll.dll';

Para utilizar una clase la idea sería algo similar, como poder hacer algo así:

Código Delphi [-]
  TMyObjectDLL = class stdcall; external 'MiDll.dll';

Aunque evidentemente esto no esta soportado, ni lo acepta el compilador, por eso ando buscando alternativas...

Como una clase es bastante mas compleja que una simple función, he pretendido utilizar clases predefinidas donde las funciones genéricas al menos estén definidas ya en interfaces y donde el programa que pretende utilizar dicha clase, tenga ya de antemano alguna información sobre la clase
Responder Con Cita