7

Delphi XE2 Update 3 IDE はプロジェクトを正常にコンパイルしますが、dcc32.exeは次のように書き込みます。

Embarcadero Delphi for Win32 compiler version 22.0
Copyright (c) 1983,2010 Embarcadero Technologies, Inc.
ehshelprouter.pas(137) Error: E2010 Incompatible types: 'Integer' and 'NativeInt'
ehs_reg.pas(68) Fatal: F2063 Could not compile used unit 'ehshelprouter.pas'

なんで?137行目は次のとおりです。

Application.OnHelp := OnRouteHelp; // function OnRouteHelp(Command: Word; Data: NativeInt; var CallHelp: Boolean): Boolean;

助けてくれてありがとう!

4

3 に答える 3

4

問題の行を確認してください。互換性があるはずの 2 つの型が互換性がないという場合は、単純な代入よりも複雑なことが行われています。推測するに、何かが関数ポインタを渡し、API が変更されています。そのケースをチェックしてみてください...

于 2011-12-22T01:14:08.607 に答える
1

誤って古いdcc32.exeを使用しています(Delphi XEでしょうか?)。PATH設定を確認するか、コンパイルでXE2dcc32.exeへのフルパスを指定してください。XE2は次のバージョン情報を表示する必要があります。

Embarcadero DelphiforWin32コンパイラバージョン23.0

于 2011-12-22T13:15:05.300 に答える
1

コマンドラインで Win64 用にコンパイルしていないことを再確認しましたか? (つまり、実際に呼び出されたのが dcc32.exe であることを確認します)。
その場合、NativeInt は 64 ビットであり、このエラーが発生するのは正常です。

また、( ...) のように-Bオプションを使用して完全なビルドを実行しようとしていますか、または ( ...)のように-Mオプションを使用して単純にコンパイルしようとしていますか? c:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config-B-Qc:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config-M-Q

また、すべての dcus を一掃して、それが役立つかどうかを確認します。

また、IDE から動作するため、メッセージ領域に表示されているコマンド ラインをキャプチャして、コンソールでまったく同じ行を試してみてください。

于 2011-12-22T01:08:35.727 に答える