delphi的DLL导出函数中pchar问题 10

用delphi做了一个DLL,导出函数格式如下:functionCal(a1,a2,a3:integer;a8:pchar):integer;varstr:string;... 用delphi做了一个DLL,导出函数格式如下:
function Cal(a1,a2,a3:integer;a8:pchar):integer;
var
str:string;
begin
str := format('%1d%2d%3d',[a1,a2,a3]);
CopyMemory(a8,pchar(str),8);
result := 0;
end
结果a8在内存中总是多了'#$12'!'
例如a1=1,a2=68,a3=888时
a8 在调试时总是'16888'#$12'!'

求解
同样的代码我写在一个EXE里
function Cal(a1,a2,a3:integer;a8:pchar):integer;
var
str:string;
begin
str := format('%1d%2d%3d',[a1,a2,a3]);
CopyMemory(a8,pchar(str),8);
result := 0;
end
procedure TForm1.Button1Click(Sender: TObject);
var
CodeBuff :array[0..7] of char;
temp :integer;
beign
temp:= Cal(1,2,3,@CodeBuff[0]);
Edit1.Text := CodeBuff;
end

这个EDIT控件的文本总是多一点出来
展开
 我来答
hankwh
2013-06-17
知道答主
回答量:5
采纳率:0%
帮助的人:8.7万
展开全部
把你以上的pchar 全部改成pansichar。应该就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
台浦泽4r
2013-06-08 · TA获得超过937个赞
知道小有建树答主
回答量:1249
采纳率:62%
帮助的人:633万
展开全部
我试了一下你的代码,没看见edit里多一点出来啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式