delphi 5からXEにアップグレードしたので、しばらく前にコンパイルされた特定のDLLを使用するのに苦労しています。私のブロッキングポイントはUnicode/ansi文字に関連しているようですが、問題を解決する方法がわかりません
手順の例を次に示します。
procedure GetFilename(Buffer: PChar; BufSize: Integer); stdcall;
私のコードでは、これをそのように呼んでいます
implementation
procedure GetFilename; external 'myDll.dll' name 'GetFilename';
procedure myproc
var
buffer : Array [0..255] of Char;
begin
GetFilename(buffer, length(buffer)-1);
Showmessage(buffer); //This gives me chinese character
end;
バッファにはこれが含まれています:
byte((@buffer[0])^); // 67 which is the ASCII for C
byte((@buffer[1])^); // 92 which is the ASCII for \
私が通常期待しているのは、「C:」で始まる文字列です。
誰かが同じ問題に直面しましたか?