动态库定义的地方
function Dou(i,j:integer):integer;stdcall
begin
result:=i*j;
end;
exports
Dou;
调用dll的地方
procedure TForm1.Button1Click(Sender: TObject);
var
h:Thandle;
begin
h:=SafeLoadLibrary('mydll.dll');
@Dou:=getprocaddress(h,'Dou'); ------出错的地方
end;到底动态调用dll应该怎么写呢?谢谢
function Dou(i,j:integer):integer;stdcall
begin
result:=i*j;
end;
exports
Dou;
调用dll的地方
procedure TForm1.Button1Click(Sender: TObject);
var
h:Thandle;
begin
h:=SafeLoadLibrary('mydll.dll');
@Dou:=getprocaddress(h,'Dou'); ------出错的地方
end;到底动态调用dll应该怎么写呢?谢谢
解决方案 »
- 现在盗版越来越难找了。求addin express 2008 2009或 2010 for vcl (Delphi)
- image控件显示图片,如何设置按钮对图片进行放大缩小?
- 致所有泡在此地的朋友们-感叹篇
- 如何在程序运行时修改StringGrid的goRowSelect值?在线守候。
- 如何做成左右分栏的形式,左边菜单,右边显示窗体,点左边,在右边显示窗体?怎么实现,十万火急!在线等待!
- 用D7编译D6编好的工程时出现: Variants.pas(1024): Program or unit 'Variants' recursively uses itself 该怎么办?
- 如何作大按钮的工具栏,象winrar一样
- DBEdit值为空如何处理?
- 请教高手:数据库表操作
- 不用ODBC,怎样使ADO连接DBF、INTERBASE数据库?
- 有关Excel模板的动态复制、插入一行数据的问题,在线等待!!
- 新手请教:怎样在Excel中插入图片
TDou=Function (i,j:integer):integer;stdcall)
var
h:Thandle;
f:TDou;
begin
h:=LoadLibrary('mydll.dll');
if h<>0 then
begin
@f:=getprocaddress(h,'Dou');
if @f<>nil then
begin
代码
end;
这是动态调用
在TYPE下面写
Class Tdou = function ( i,j:Integer):Integer;stdcall;
在调用的地方的VAR下面写procedure TForm1.Button1Click(Sender: TObject);
var
h:Thandle;
dou:TDou;
begin
h:=SafeLoadLibrary('mydll.dll');
@Dou:=getprocaddress(h,'Dou');
Dou(1,2);
end;
最后FINALLY
FreeLibrary(LibH);