| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2482 人关注过本帖
标题: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
快速回复:delphi调用vc的dll的问题(函数返回值为char*)
数据加载中...
 
   



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

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