Ver Mensaje Individual
  #9  
Antiguo 14-04-2014
elmago00 elmago00 is offline
Miembro
NULL
 
Registrado: ago 2013
Posts: 86
Reputación: 11
elmago00 Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
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 [-]
// declaration externa (en lugar de código)
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.
Responder Con Cita