如何调用dll中的函数或变量????(100分)

  • 主题发起人 主题发起人 ecamel
  • 开始时间 开始时间
E

ecamel

Unregistered / Unconfirmed
GUEST, unregistred user!
因为DLL中有提供一些接口的API函数,
如何调用返回一下值???
急急!!! [:(!]
 
静态调用声明一下就可以用了,
var
function test(a:integer):integer;stdcall;external'动态连接库';
 
1.首先得知道 DLL 中函数接口名称.
如DLL中:(xxx.dll)
function add(a:integer):integer;stdcall;
begin
result:=a*a;
end;
exports
add;//这个
2.调用时可用动态和静态两种.
type p=function (a:integer):integer;stdcall;
.
.
var hr:Thandle;
aa:p;
begin
hr:=loadlibrary('x:/xxx.dll');
@aa:=getprocaddress(hr,'add');//add最好和接口名大小写一样
edit1.text:=inttostr(aa(4));
freelibrary(hr);
end;
 
type p=function (a:integer):integer;stdcall;
这句话是哪定义
我放到type下不行
type中已经存在另一下类了
 
直接用
var
hr:Thandle;
aa:function (a:integer):integer;stdcall;

即可!

或者,在var之前加上这个Type就可以了。
 
dll有很多个函数,要一个个这样定义??
这样不是很烦吗?
 
如果DLL使用DELPHI编写的,你直接把接口单元放入DELPHI中就不用定义了(引用就可以了)
这样就不烦了
 
接受答案了.
 
后退
顶部