Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Conexión a DLL versión COM (https://www.clubdelphi.com/foros/showthread.php?t=64921)

andresenlared 10-11-2009 17:18:15

Conexión a DLL versión COM
 
Saludos....

Tengo un problemilla con unas dll.....y no se como trabajarlas desde delphi..

Me entragron unas dll que se registran por ejemplo

C:\efiQuest>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe efiQuest_dll.dll /tlb:efiQuest.tlb /codebase

y la otra dll asociada es ..

C:\efiQuest> regsvr32 c:\efiQuest\VB6Dll.dll

todo se hace como se indica en el manual...ahora necesito que desde delphi pueda acceder a una funcion que retorna un valor booleano y que esta en efiQuest_dll.dll

la funcion con sus parametros

ConsultarAfiliado(edit1.Text,edit2.Text,txtServidorProxy, txtPuertoProxy,
txtUsuarioProxy, txtClaveProxy,PrimerApellido,
SegundoApellido,primerNombre,segundoNombre,
fechaNacimiento,departamento,municipio,estadoAfiliacion,
entidadAfiliacion,regimenAfiliacion,fechaInicioContratacion,
fechaFinContratacion,fechaAfiliacionEntidad,fechaUltimaNovedad,
tipoAfiliado,codigoError,mensajeErro)

si la funcion retorna falso....en los campos codigoError,mensajeErro se reflejan codigo y descripcion del error encontrado.

andresenlared 11-11-2009 21:17:18

Bueno compañeros....a tanto logre hacer algo que les comentare aqui...

este comando RegAsm.exe , crea el archivo efiquest.tlb, luego en dephi en este caso el 7, se agrega al proyecto un com object. este objeto al agregarlo pide el archivo tlb creado anteriormente, y se crea la interfaz para acceder a la dll, tambien pide el nombre de clase que para este caso es "efiq"

en uno de lo archivo credos, se crea algo parecido a esto

CLASS_efiq: TGUID = '{5D1FB07A-3636-4DB6-9A94-215443B01ACB}';

se diferencia porque la linea de codigo asocia el nombre de la clase y coloca el prefijo CLASS_.

luego en el formulario que usa la dll, se crea un objeto de la siguiente manera...


const
Class_Efiq: TGUID =
'{5D1FB07A-3636-4DB6-9A94-215443B01ACB}';
.
uses ComObj;
.
Var
efi: efiq;

begin

efi:=CreateComObject (Class_Efiquest) as efiq;


ahora si con el objeto "efi" se puede hace referencia a todos los metodos que implementa la dll.


La franja horaria es GMT +2. Ahora son las 03:32:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi