我调用动态库时用这样一个函数,但现在编译不出错,但运行时出错,估计是string类型转换为char数组出错造成的,高手们帮忙解决下,看第一句该如何转化
StrCopy(@FpStr, pchar(tmpStr));
// FillChar(FpStr,sizeof(FpStr),0);
// StrMove(@FpStr,pchar(tmpStr),996);
sleep(2);
//ret_Flag := FP100_DownpointFP(@FpStr, BakNo[i], pchar(IpStr), 5101);
// ret_Flag := FP100_DownpointFP_ASC(@FpStr[0],1,pchar(IpStr),5101);
ret_Flag := FP100_DownpointFP_ASC(@FpStr, 1, pchar(IpStr), Port);
StrCopy(@FpStr, pchar(tmpStr));
// FillChar(FpStr,sizeof(FpStr),0);
// StrMove(@FpStr,pchar(tmpStr),996);
sleep(2);
//ret_Flag := FP100_DownpointFP(@FpStr, BakNo[i], pchar(IpStr), 5101);
// ret_Flag := FP100_DownpointFP_ASC(@FpStr[0],1,pchar(IpStr),5101);
ret_Flag := FP100_DownpointFP_ASC(@FpStr, 1, pchar(IpStr), Port);
楼主试试 MemoryCopy?
//以下代码为string类型转换为char数组
procedure TForm1.Button_1Click(Sender: TObject);
var
vStr:string;
vCharArray:array of Char;
begin
vStr := '123456abcdefg中国人民';
SetLength(vCharArray,Length(vStr));
StrCopy(PAnsiChar(vCharArray),PChar(vStr));
ShowMessage(PAnsiChar(vCharArray));
end;