标题:delphi调用vc的dll的问题(函数返回值为char*)
只看楼主
冰凝1984
Rank: 1
等 级:新手上路
威 望:1
帖 子:119
专家分:0
注 册:2006-5-25
 问题点数:0 回复次数:3 
delphi调用vc的dll的问题(函数返回值为char*)

我在vc的dll中定义了一个函数:
char* _stdcall Get_HardDriveSerialNumber()
{
return HardDriveSerialNumber;
}
该函数的功能是返回硬盘的某个参数。其中,HardDriveSerialNumber的值在dll内部获得。

然后我在delphi中这样调用:
var
Form1: TForm1;
function Get_HardDriveSerialNumber():pchar;stdcall;far;external 'read_disk.dll';
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
a:pchar;
begin
a:=Get_HardDriveSerialNumber();
edit1.Text:=a;
end;

按理说vc的char*和delphi的pchar应该是对应的啊,但是不知道为什么a的值为空

搜索更多相关主题的帖子: delphi char 返回值 dll 函数 
2007-05-01 11:32
网络骑士hkc
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-5-2
得分:0 

用pointer试试
function Get_HardDriveSerialNumber:pointer;stdcall;far;external 'read_disk.dll';

var
buf:array[0..50] of char;
p:pointer;
begin
p:=Get_HardDriveSerialNumber;
copymemory(@buf[0],p,50);
edit1.Text:=a;
end;

2007-05-02 03:40
冰凝1984
Rank: 1
等 级:新手上路
威 望:1
帖 子:119
专家分:0
注 册:2006-5-25
得分:0 
还是不行呢。

2007-05-03 08:08
冰凝1984
Rank: 1
等 级:新手上路
威 望:1
帖 子:119
专家分:0
注 册:2006-5-25
得分:0 
明白了:是我的dll本身的问题。

2007-05-03 19:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-136386-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058863 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved