pchar 参数传递的问题!
函数声明:---输出到dll
Function getruimeiserial(unit:pchar;ins:pchar;spass:pchar;out s:pchar):pchar;stdcall;
函数:
Function getruimeiserial(unit:pchar;ins:pchar;spass:pchar;out s:pchar):pchar;stdcall;
var tmp:char;
sp:pchar;
i,lens,values:integer;
tmpstring:string;
vbuffer:array[0..255] of char;
rc:pchar;
begin
if spass <> ‘1209’then
result := '0'
else
try
strecopy(strecopy(vbuffer,unit),ins);
sp := vbuffer;
values := 0;
lens := length(sp);
for i := 1 to lens do
begin
tmp := sp[i];
values := values + ord(tmp);
end;
if values > 999999 then
tmpstring := copy(inttostr(values),1,6)
else
tmpstring := inttostr(trunc(values * power(10,6 - length(inttostr(values)))));
rc := Pchar(tmpstring + inttostr(trunc(256 - values mod 256)));
s:= AllocMem(Length(rc)+1);
strPcopy(skey,rc);
s:= rc;
result := Pchar(tmpstring + inttostr(trunc(256 - values mod 256)));
except
result := '0'
end
end;
问题:
引入参数s现在无法正常输出---乱码!
前提:
引入参数类型不能更改,因为要供其他工具语言调用!!!
求解!!,谢谢