delph开发动态库怎么样才能返回值?(50分)

  • 主题发起人 主题发起人 ccweifen
  • 开始时间 开始时间
C

ccweifen

Unregistered / Unconfirmed
GUEST, unregistred user!
动态库'xxx.dll'中我这样写的
Function GetPassword(icdev :Integer ; UserPassword :PAnsiChar ):Integer ;stdcall; export;
begin
。。//能取到userpassword值,我把同样的代码拷到工程中试过。
end
调用时:
Function GetPassword(icdev :Integer ;UserPassword :PAnsiChar):Integer;stdcall;External 'xxx.dll'

可是UserPassword 总是空的,没有还回;
是不是类型定义有问题?还是过程中还需要加什么指令?
 
将UserPassword :PAnsiChar 改为:UserPassword:String 试一试。

DLL部份定义:
Function GetPassword(icdev:Integer; UserPassword:String):Integer; StdCall;

EXE部份动态调用DLL的定义:
TGetPassword = function(icdev :Integer; UserPassword:String):Integer; StdCall;
 
Function GetPassword(icdev :Integer ; [red]var [/red]UserPassword :String ):Integer ;stdcall; export;
begin

end;
 
string 类型 在别的语言是不能用的

pansichar 是可以,但要注意动态内存的话,要在调用方(exe) 申请(getmem)
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部