【发布时间】:2009-09-16 17:32:25
【问题描述】:
我的 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
我做错了什么?
【问题讨论】:
标签: delphi unicode delphi-2010 delphi-2007