1

MadRes をコンパイルしていますが、エラーは次のとおりです。

Checking project dependencies...
Compiling Project1.dproj (Debug configuration)
[DCC Warning] madRes.pas(351): W1057 Implicit string cast from 'AnsiString' to 'string'
[DCC Warning] madRes.pas(351): W1057 Implicit string cast from 'AnsiString' to 'string'
[DCC Error] madRes.pas(519): E2010 Incompatible types: 'Char' and 'AnsiChar'
[DCC Fatal Error] Unit1.pas(7): F2063 Could not compile used unit 'madRes.pas'
Failed
Elapsed time: 00:00:00.6

次に、ユニット madRes のこの部分を示します。

   if GetVersion and $ 80000000 = 0 then
        result: = CreateFileW (fileName, c1, c2, nil, c3, 0, 0)
   else result: = CreateFileA (pchar (string (WideString (fileName))), c1, c2, nil, c3, 0, 0);
end;

コードはexeがうまくいくことがわかったプログラムですが、問題は自分のコンピューターからコンパイルしたいときです。

誰かが私を助けることができますか?

4

1 に答える 1

2

madCollection の最新バージョンをダウンロードしてインストールする必要があります: http://madshi.net/

Unicode サポート用に更新されてからかなり経ちます - 問題の行は現在次のようになっています。

result := CreateFileA(PAnsiChar(AnsiString(UnicodeString(fileName))), 
                                                       c1, c2, nil, c3, 0, 0);

Delphi のデフォルトの文字列(PChar など)は、D2009 で Ansi から 2 バイトの Unicode に変更されました。これにより、互換性のために Ansi 固有の実装 (PAnsiChar、AnsiString) について明示する必要が生じました。詳細を読むことに興味がある場合は、EDN に関する次の記事がおそらく良い出発点になると思います。

Unicode の世界における Delphi

于 2013-06-24T17:50:13.520 に答える