本来定义了一个函数,定义入下,其中用到了3个变参
function GetReg(ProName:PChar; var fGeneral:integer; var EndDate,Params:PChar):integer;
现在想把这个函数封装入dll中,如上定义,在调用时会出错,请教如何写才能在dll中实现变参?谢谢
function GetReg(ProName:PChar; var fGeneral:integer; var EndDate,Params:PChar):integer;
现在想把这个函数封装入dll中,如上定义,在调用时会出错,请教如何写才能在dll中实现变参?谢谢
解决方案 »
- FileStream怎么判断遍历到结束
- delphi盒子被挂了网马,大家小心。
- 刚写完多人语音聊天的功能,感觉不错,大家看看哦
- sqlserver里不同的库之间怎么汇总数据?
- 关于SQL SEVER200的简单问题
- 过年了,升级了,女朋友也找到了,散分啦!
- 高分征求Delphi连接远程Oracle数据库的详细资料,非高手请勿回复!(在线等)
- 在delphi中如何判断有没有默认的 打印机?
- 我的人生,我的工作,我的无奈。我应该到哪里去?
- Dev Express系列的控件哪儿可以找得到!(jiantao)
- Delphi报表问题?
- 谁有现成的销售系统(Access)给我发一个(只要有销售和库存管理)就行(采用的就送200分)
function GetReg(ProName:PChar; var fGeneral:integer; var EndDate:PChar; var Params:PChar):integer;
SysUtils, Classes;{$R *.RES}function GetReg(ProName:PChar; var fGeneral:integer; var EndDate,Params:PChar):integer;
begin
fGeneral := Ord(True);
EndDate := FormatDateTime('yyyymmdd',Now);
Params := '';
end;exports
GetReg;begin
end.
procedure GetReg(ProName:PChar; var fGeneral:integer; var EndDate,Params:PChar):integer;far; external 'SysEnabled.dll';procedure TForm1.Button1Click(Sender: TObject);
var
fGeneral:integer;
EndDate,Params:PChar
begin
GetReg(',',fGeneral,EndDate,Params);
Edit1.Text := IntToStr(fGeneral)+'!'+EndDate+'!'+Params;
end;
注意調用約定.再試試!
调用的工程
procedure GetReg(ProName:PChar; var fGeneral:integer; var EndDate,Params:PChar):integer;stdcall; external 'SysEnabled.dll';
如果不给16为操作系统使用,可以不far
你必须做到在vc中分配内存然后在dll中将数据填入vc分配的内存中,不能在dll中改变该内存的地址和大小。