Escrevendo uma string para um TFileStream no Delphi 2010
Eu tenho o código Delphi 2007 que se parece com isso:
procedure WriteString(Stream: TFileStream; var SourceBuffer: PChar; s: string);
begin
StrPCopy(SourceBuffer,s);
Stream.Write(SourceBuffer[0], StrLen(SourceBuffer));
end;
Eu chamo assim:
var
SourceBuffer : PChar;
MyFile: TFileStream;
....
SourceBuffer := StrAlloc(1024);
MyFile := TFileStream.Create('MyFile.txt',fmCreate);
WriteString(MyFile,SourceBuffer,'Some Text');
....
Isso funcionou no Delphi 2007, mas isso me dá um monte de caracteres de lixo eletrônico no Delphi 2010. Eu sei que isso é devido a problemas de conformidade unicode, mas não sei como resolver o problema.
Aqui está o que eu tentei até agora:
Altere o tipo de dados de SourceBuffer (e também o parâmetro esperado por WideString) para PWideChar
Cada um dossugestões listadas aqui
O que estou fazendo de errado?