vickowang:你好
非常感谢你的指教,我写了如下的程序,但出现问题
DLL的名字为AVER32.DLL
含有如下函数声名
bool far pascal _export aver_init(hwnd,bool);
void far pascal _export aver_close(void);
我在程序里是这样写的,可以编译通过,执行时出错
错误提示为access violation at address 00000001 read of address ffffffff
我不知道那里错了,请帮我分析一下
taver_init1=function(nowhwnd:hwnd;overlay:boolean):boolean;stdcall;
taver_init2=procedure;stdcall;
然后在 implementation 内
var
handle:thandle;
l_averinit1:taver_init1;
l_averinit2:taver_init2;
procedure usedll;
begin
handle:=loadlibrary('aver32.dll');
if handle<=0 then
begin
raise exception.create('load dll error');exit end;
@l_averinit1:=getprocaddress(handle,'aver_init');
@l_averinit2:=getprocaddress(handle,'aver_close');end;
procedure tform1.button1click(sender:tobject);
begin
usedll;
l_averinit1(form1.handle,false);
end;
procedure tform1.button2click(sender:tobject);
begin
l_averinit2;
freelibrary(handle);
end;
希望你能抽一点时间回复一下,真的很急!