关于Delphi制作的Dll在调用过程中出现乱码的问题及解决方法

admin 发表于 编程乐园 分类,标签: , ,
0

  最近在做一个项目过程中使用了Delphi制作DLL提供给业务系统调用,驱动业务流程。
  在这个过程中发现不少问题,最典型的就是乱码问题,DLL函数里传出来的返回值时不时的有乱码的产生。
  这个问题困绕了我很久,最先使用的是PChar,然后修改成PansiChar,但还是不行。往往返回值后面会多一些乱码出来,后来在内部函数见调用的时候就使用了string,在返回给外面PAchar的时候使用了另外一个自定义函数来转换。

function strtopchar(str:string):pchar;
var
arrchar:array[0..102400]  of char;
begin
fillchar(arrchar,102400,#0);
StrCopy(@arrchar[0],pansichar(str));
Result:=@arrchar[0];
end;

在这个函数的测试过程中也碰到了些奇怪的问题,当数组长度比小的时候比如200或者根据str长度来取得的时候,str如果是123 则输出着是12 奇数位经常发生这个问题。

所以这个也应急解决办法,正解还没出来。

« 上一篇: :下一篇 »

发表我的评论

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif