如何在Delphi中载入静态连接库.Lib?(100分)

  • 主题发起人 吕雪松
  • 开始时间

吕雪松

Unregistered / Unconfirmed
GUEST, unregistred user!
K

Kiven

Unregistered / Unconfirmed
GUEST, unregistred user!
用LoadLibrary获得DLL的句柄,用GetProcAddress获得DLL中例程的地址。

比如,你现在有个DllName.dll的DLL,并且里面有个Getcount的函数。如下:
procedure TForm1.Button1Click(Sender:TObject);
Var
LibHandle: THandle;
FunAddress: Function(Index:Integer):Integer;Stdcall;
Count: Integer;
begin
LibHandle:=LoadLibrary(PChar(DllName);
FunAddress:=GetProcAddress(LibHandle,'GetCount');
Count:=FunAddress(2);
end;
 
A

aimingoo

Unregistered / Unconfirmed
GUEST, unregistred user!
Kiven的方法是调入动态链接库的。
静态链接库是在编译时调入的,你只需要定义调用的函数接口,然后加入
{$L xxx.Lib}编译指令,就可以了。这种方法同样适用于.OBJ的链入。
值得说明的是,你无法在Delphi中很好的使用.LIB或.OBJ,因为(很惨),
Delphi并不支持所有结构的.LIB的链入。大致来说,他能较好的支持BC写
成的.LIB(.OBJ),不能很好的支持VC写成的.LIB(.OBJ)。——就象当年Turbo
Pascal不支持多断.OBJ的链入一样,Borland玩了一个花招。:-((((
 
N

newsxy

Unregistered / Unconfirmed
GUEST, unregistred user!
我不清楚.LIB文件是用什么写的怎么办?
 
顶部