Estoy intentado usar una dll generada desde Visual Basic para usarla en Delphi, y no hay manera.
En la dll que genero en Visual Basic lo único que tengo es lo siguiente:
Public sub Hola()
MsgBox("Hola")
End Sub
Una vez generada la dll, la intento utilizar desde un programa generado con visual Basic, y consigo hacerlo sin problemas.
Cuando intento importarla desde delphi, no consigo que me funcione.
Lo hago con el siguiente codigo
Código Delphi
[-]unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm9 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
TProc = procedure;
var
Form9: TForm9;
implementation
{$R *.dfm}
procedure TForm9.Button1Click(Sender: TObject);
var
Handle: THandle;
Proc:TProc;
begin
Handle := LoadLibrary('Project10.dll');
if Handle <> 0 then
begin
@Proc := GetProcAddress(Handle, 'Hola');
if @Proc <> nil then
Proc;
FreeLibrary(Handle);
end;
end;
end.
Delphi consigue cargar la libreria, pero cuando intento cargar el procedimiento por el nombre delphi no lo encuentra, por lo que no me queda mas remedio que cargarlo por el numero de indice con el siguiente código @Proc := GetProcAddress(Handle, PChar(1));.
Una vez que he conseguido cargar el procedimiento, lo ejecuto, pero no hace absolutamente nada, ¿alquien puede ayudarme?
¿Acaso no es compatible una dll de visual basic con delphi?.