标题:delphi调用vc的dll的问题
只看楼主
xs1065
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-8-14
 问题点数:0 回复次数:4 
delphi调用vc的dll的问题
在delphi调用了用vc写的dll,它的函数返回值为char *,在dll导出函数原型为:
PAPERDLL_API char *PAPERDLL_CALLCONV PD_Get_stuPaperInfo(LPCTSTR strSourceFileName,
LPCTSTR strTemplateFileName,
int paperPageSum,
LPCTSTR strInfoFileName,
LPCTSTR strCutFileName,
int scoreMode);
函数的参数没有问题,返回为一个char *;
在delphi我对该函数做了如下声明:
function PD_Get_stuPaperInfo(strSourceFileName,strTemplateFileName:string;
paperPageSum:integer;
strInfoFileName,strCutFileName:string;
scoreMode:integer):Pchar;stdcall;
external 'PaperDll.dll';
然后调用该函数:
var FStudInfo:PChar;
FStudInfo := PD_Get_stuPaperInfo(FStudentAnswPath,
FLabelPath,
FExamPaperNum,
FWritePath,
FCutPath,
FRegnPattern);
为什么参数返回的为nil?请教解决!谢谢了!
搜索更多相关主题的帖子: delphi dll 
2007-08-14 16:06
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
得分:0 

改成这样看下行不?
function PD_Get_stuPaperInfo( strSourceFileName: PChar;
strTemplateFileName:PChar;
paperPageSum:integer;
strInfoFileName: PChar;
strCutFileName:PChar;
scoreMode:integer):Pchar;stdcall;


var
Form1: TForm1;

implementation

{$R *.dfm}
function PD_Get_stuPaperInfo; external 'PaperDll.dll' name 'PD_Get_stuPaperInfo';

2007-08-14 19:13
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
得分:0 

在保证楼主VC的DLL正确的情况下,
楼上的正解,不过注意function有返回值。
{$R *.dfm}
function PD_Get_stuPaperInfo; external 'PaperDll.dll' name 'PD_Get_stuPaperInfo';

注意少了返回值!


大家都是朋友,有空就来坐坐!
2007-08-19 18:43
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
得分:0 
vc中识别不了delphi的string类型
vc的LPCTSTR用delphi的PChar或者PWideChar

大家都是朋友,有空就来坐坐!
2007-08-19 18:44



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




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

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