我有如下所示的 Delphi 2007 代码:
procedure WriteString(Stream: TFileStream; var SourceBuffer: PChar; s: string);
begin
StrPCopy(SourceBuffer,s);
Stream.Write(SourceBuffer[0], StrLen(SourceBuffer));
end;
我这样称呼它:
var
SourceBuffer : PChar;
MyFile: TFileStream;
....
SourceBuffer := StrAlloc(1024);
MyFile := TFileStream.Create('MyFile.txt',fmCreate);
WriteString(MyFile,SourceBuffer,'Some Text');
....
这在 Delphi 2007 中有效,但在 Delphi 2010 中给了我很多垃圾字符。我知道这是由于 unicode 合规性问题,但我不知道如何解决这个问题。
这是我迄今为止尝试过的:
将 SourceBuffer 的数据类型(以及 WideString 期望的参数)更改为 PWideChar
此处列出的每一项建议
我究竟做错了什么?