Cita:
Empezado por duilioisola
El problema creo que viene porque la dll define una interfase.
No se como se trabaja con interfases.
Leí alguna vez algo, pero no le encontré utilidad en su momento y no recuerdo nada de eso.
También habría que ver como defines analytics en el formulario TForm12.
Revisa este artículo http://www.marcocantu.com/epascal/Spanish/ch09win.htm
Ejemplo
Código Delphi [-]function LineTo; external 'gdi32.dll' name 'LineTo';
Y si sigue sin funcionar:
Supongo que la mejor opción es que abras un nuevo hilo con esta última pregunta y le pongas un asunto acorde.
El título podría ser: "Ejecutar procedimiento dentro de una dll"
Creo que solo te falta clarificar qué es Unit12.pas. Por lo que escribes no se sabe si es la unidad donde está la interfase o la unidad del formulario desde donde la quieres llamar.
Como nota aparte, el GUID que muestras primero y el de la definición de la interfase no son iguales. Parece que o falta o sobra el último digito
|
gracias por responder la
unit12 es donde esta el formulario que hace la llamada.
me falto poner como la defino, que el proceso completo es asi:
Código Delphi
[-]procedure TForm12.Button7Click(Sender: TObject);
var
analytics:Analytics;
nombre:byte; unico:byte; restaurar:PSafeArrayay; Dom:PSafeArray;
begin
analytics.Execute(nombre, unico, restaurar, Dom,);
end;
las GUID no son iguales, por que se borro la utlima letra al editar el post:
esta esta completa:
Código Delphi
[-]II_Analytics: TGUID = '{288230CE-8W49-4C7C-D166-T032363EADFCE}';
esto es lo hay en la dll
Código Delphi
[-]Analytics= interface(IDispatch)
['{288230CE-8W49-4C7C-D166-T032363EADFCE}']
procedure Execute(out Nmae: Byte; out UNIC: Byte;
out restart: PSafeArray; out DOM78: PSafeArray;
); safecall;
end;
con el asunto de la interface, no tengo problemas, por que puedo llamar a otras GUIDs, y funciona perfecto, y lo hago de la misma manera, solo es con esta el problema.
gracias por haber intentado ayudarme.