var
iFileHandle: Integer;
iFileLength: Integer;
ConnectionStrBuf:PChar;
..........
ConnectionStrBuf:=PChar(AllocMem(iFileLength+1));
FileRead(iFileHandle, ConnectionStrBuf^, iFileLength);
FileClose(iFileHandle);
SPSADOConnection.ConnectionString:= ConnectionStrBuf; showmessage(SPSADOConnection.ConnectionString);//这里发现了只赋了一个字符
..........我想ConnectionStrBuf是PChar型,怎么才能把它的内容赋给一个widestring型?
iFileHandle: Integer;
iFileLength: Integer;
ConnectionStrBuf:PChar;
..........
ConnectionStrBuf:=PChar(AllocMem(iFileLength+1));
FileRead(iFileHandle, ConnectionStrBuf^, iFileLength);
FileClose(iFileHandle);
SPSADOConnection.ConnectionString:= ConnectionStrBuf; showmessage(SPSADOConnection.ConnectionString);//这里发现了只赋了一个字符
..........我想ConnectionStrBuf是PChar型,怎么才能把它的内容赋给一个widestring型?
P: PChar;
W: WideString;
S: string;
begin
S := 'PChar needs to be allocated memory before using it.'#13#10 +
'You should call FreeMem to dispose its memory, too.';
GetMem(P, 200);
StrLCopy(P, @S[1], 200);
W := P;
ShowMessage(W);
FreeMem(P);
end;
GetMem(ConnectionStrBuf,iFileLength+1);
FileRead(iFileHandle, ConnectionStrBuf^, iFileLength);
FileClose(iFileHandle);
ConnectionStrBuf[iFileLength]:=#0;
SPSADOConnection.ConnectionString:= String(ConnectionStrBuf);
finally
FreeMem(ConnectionStrBuf);
end;
try
FileRead(iFileHandle, ConnectionStrBuf^, iFileLength);
FileClose(iFileHandle);
ConnectionStrBuf[iFileLength]:=#0;
SPSADOConnection.ConnectionString:= String(ConnectionStrBuf);
finally
FreeMem(ConnectionStrBuf);
end;
iFileHandle: Integer;
iFileLength: Integer;
ConnectionStrBuf:WideString;
.....
SetLength(ConnectionStrBuf,iFileLength);
FileRead(iFileHandle, ConnectionStrBuf[1], iFileLength);
FileClose(iFileHandle);
SPSADOConnection.ConnectionString:= ConnectionStrBuf;
ShowMessage(SPSADOConnection.ConnectionString);
SPSADOConnection.ConnectionString:= ConnectionStrBuf;
改为:
SPSADOConnection.ConnectionString:=WideString(ConnectionStrBuf);
var
ConnectionStrBuf:PChar;
改为:
ConnectionStrBuf:PWideChar;