为什么取不到DLL中的过程地址啊(我是第一次写动态调用动态连接库)(100分)

  • 主题发起人 主题发起人 goodman
  • 开始时间 开始时间
G

goodman

Unregistered / Unconfirmed
GUEST, unregistred user!
var libhandle:thandle;
autocreate:tautocreate;
begin
libhandle:=loadlibrary('auto.dll');
try
if libhandle=0 then
raise edllloaderror.create('unload auto.dll');
@autocreate:=getprocaddress(libhandle,'autocreate');
if not(@autocreate=nil) then
//好象@autocreate得nil,可AUTOCREATE(a:tadoquery)过程是在auto.dll中有的呢
begin
showmessage('bb');
autocreate(datamodule2.adoquery1);
end
else
raiselastwin32error;
finally
freelibrary(libhandle);
end;
end;
 
要注意大小写
 
大小写我早就注意了,可是就是不行的
 
export的函数需要设置成stdcall。
最好你贴一下dll中的源码,才好分析。
 
首先是声明 tautocreate;是否正确
其次 @ 的使用是否有问题 ?
 
autocreate:TFarProc;
 
是我自已的问题来的,谢谢大家。
 
后退
顶部