次のような 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 に変更します。
ここにリストされているすべての提案
私は何を間違っていますか?