用delphi产生的:project1.dllfunction jia(a,b:integer):integer;stdcall
begin
result:=a+b;
end;
exports
jia;新建一个formvar
OneHandle : THandle;
begin
OneHandle := LoadLibrary('e:\project1.dll');
try
if OneHandle <> 0 then
@jia := GetProcAddress(OneHandle, 'jia');
if not (@jia = nil) then
showmessage(inttostr(jia(3,4)));
finally
FreeLibrary(OneHandle);
end;编译时,提示jia没有定义,怎么回事,谢谢
begin
result:=a+b;
end;
exports
jia;新建一个formvar
OneHandle : THandle;
begin
OneHandle := LoadLibrary('e:\project1.dll');
try
if OneHandle <> 0 then
@jia := GetProcAddress(OneHandle, 'jia');
if not (@jia = nil) then
showmessage(inttostr(jia(3,4)));
finally
FreeLibrary(OneHandle);
end;编译时,提示jia没有定义,怎么回事,谢谢
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TVar= function(a,b:integer):integer;stdcall;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
jia1: TFarProc;
OneHandle: THandle;
MyF: TVar;
begin
OneHandle:= LoadLibrary('project1.dll');
try
if OneHandle<>0 then
jia1:= GetProcAddress(OneHandle,'jia');
if jia1<>nil then
begin
MyF:= Tvar(jia1);
showmessage(inttostr(MyF(8,4)));
end;
finally
FreeLibrary(OneHandle);
end;
end;end.
type
jia=function(a,b:integer):integer;stdcall;
然后再去调吧
type
jia=function(a,b:integer):integer;stdcall;var
OneHandle : THandle;
begin
OneHandle := LoadLibrary('e:\project1.dll');
try
if OneHandle <> 0 then
@jia := GetProcAddress(OneHandle, 'jia');
if not (@jia = nil) then
showmessage(inttostr(jia(3,4)));
finally
FreeLibrary(OneHandle);
end;