Unicode 版の Delphi で PAnsiChar 型の文字列を StrPCopy 関数で使用する
場合は,次のように,uses に AnsiStrings を追加して明示的に AnsiStrings を
記述しみてください.
implementation
uses
AnsiStrings;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
LPAnsiChar : PAnsiChar;
begin
LPAnsiChar := AllocMem(200);
try
AnsiStrings.StrPCopy(LPAnsiChar, '日本語 ABC 文字列');
Memo1.Lines.Add(string(LPAnsiChar));
finally
FreeMem(LPAnsiChar);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
LAnsiString : AnsiString;
LPAnsiChar : PAnsiChar;
begin
LAnsiString := '日本語 ABC 文字列';
LPAnsiChar := AllocMem(Length(LAnsiString) + 1);
try
AnsiStrings.StrPCopy(LPAnsiChar, LAnsiString);
Memo1.Lines.Add(string(LPAnsiChar));
finally
FreeMem(LPAnsiChar);
end;
end;
|