dll文件的参数不能访问(100分)

  • 主题发起人 主题发起人 listen_snow
  • 开始时间 开始时间
L

listen_snow

Unregistered / Unconfirmed
GUEST, unregistred user!
动态链接库接口的参数如何才能访问?我写了个库文件,它和主程序的数据传递是通过参数实现的,可是主程序调用这个库文件接口时,却不能访问带回接口的参数值,这是什么原因
 
楼主的问题说得有点不明不白。
 
library Login;
uses
SysUtils,
Classes,
PubUnit in '../Public/Pubunit.pas',
LoginDm in 'LoginDm.pas' {dmLogin: TDataModule},
Loginfrm in 'Loginfrm.pas' {frmLogin};

{$R *.res}
function UserLogin(var sErrMsg :shortstring;):integer;export;stdcall;
var
sErr: shortstring;
begin
result := -1;
try
try
frmlogin := Tfrmlogin.Create(nil);
frmLogin.ShowModal;
[green][/green] sErr := Pchar(frmlogin.sErrMng);
red][/red] sErrMsg := Pchar(frmlogin.sErrMng);
//程序运行到绿色地方正常,到红色地方就出错。不知道为什么
finally
frmlogin.Free;
end;
except
on E:exception do
begin
sErrmsg := e.Message;
end;
end;
end;

exports
UserLogin index 1 name 'UserLogin',
begin
end.
 
DLL 里面不能使用 var 定义参数以传出数据。
 
那么如果想从DLL里传出数据都有什么方式呢?
 
1.利用函数的返回值;
2.发送 WM_COPYDATA 消息;
3.内存共享文件共享数据;
4.磁盘文件共享数据,例如数据库;
 
接受答案了.
 
后退
顶部