Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Duda haciendo Librerías DLL (https://www.clubdelphi.com/foros/showthread.php?t=53239)

enecumene 14-02-2008 19:27:37

Duda haciendo Librerías DLL
 
Holas compañeros, estoy aprendiendo a crear y usar librerias DLL, tengo este código:

Código Delphi [-]
library Project1;

uses
  SysUtils,
  Graphics,
  Classes;

{$R *.res}

procedure Hola; stdcall; export;
begin
        ShowMessage('Holaaaaaaaa');
end;

procedure Fondo; stdcall; export;
var color: TColor;
begin
  color := clWhite;
end;


exports
    Hola,
    Fondo;

begin
end.


el pedazo de codigo que esta en negrita, no se si es correcto, al compilar no me da problemas, asi es como lo estoy llamando:

Código Delphi [-]
procedure Hola; external 'EjemploDLL.dll';  
procedure Fondo; external 'EjemploDLL.dll'; 

procedure TForm1.Button1Click(Sender: TObject);
begin         
   Hola; 
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.Color := Fondo;
end;

cuando intento correr la aplicacion, me da este error:

Cita:

Interface not supported
me imagino que el problema viene del procedimiento Fondo de la Librería. cual es la manera correcta de hacerlo?

saludos

ixMike 14-02-2008 19:35:14

Es porque está mal declarada en la DLL. Debería ser una función:

Código Delphi [-]
function Fondo: TColor; stdcall; export;
begin
  Result := clWhite;
end;


Y en tu programa:

Código Delphi [-]
procedure Hola; external 'EjemploDLL.dll' name 'Hola';
Function Fondo: TColor; external 'EjemploDLL.dll' name 'Fondo';



Salu2. :)


P.D.: ¡Ahí va! ¡Respondiendo a la duda de un milenario! ayudaaaa... esto es el mundo al revés :D:D:D

enecumene 14-02-2008 20:20:22

Gracias IxMike, ya lo tengo claro.

Saludos.


La franja horaria es GMT +2. Ahora son las 13:04:22.

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