2011-12-22 1 views
6

のDelphi XE2 Update 3の IDEが正常にプロジェクトをコンパイルしますが、 DCC32.EXE は書いている:IDEが正常にコンパイルが、DCC32書き込み:エラー:E2010互換性のないタイプ: '整数' と 'nativeint型'

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; 

ありがとうございます!

+0

何ehshelprouter.pasの線137の周りのコードが実際のように見えるん: XE2は、このバージョン情報を表示する必要がありますか? –

+0

コードを表示する!私はTControl.Tagが関係していると思う。 –

答えて

1

間違って古いdcc32.exeを使用しています(おそらくデルファイXE?)。 PATH設定を確認するか、コンパイルでXE2 dcc32.exeへのフルパスを入力します。

Embarcadero Delphi for Win32 compiler version 23.0

+0

Ville Krumlinde、ありがとう! :) – Dmitry

1

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

また、あなたがc:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config(のような-Mオプションで-Bオプションのような(c:\program files\embarcadero\rad studio\9.0\bin\dcc32.exe -$O- -$W+ --no-config-B-Q ...)または簡単なコンパイルを使用してフルビルドをやろうとしています-M-Q ...)?

私はまた、それが役に立っているかどうかを確認するためにすべてのdcusを拭き取ろうとします。

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

+0

dcc32.exeで64ビットを無効にするにはどうすればよいですか? – Dmitry

+0

私の答えが更新されました。 Dcc32.exeは32ビットのコードだけを流出させることになっていますが、実際にはdcc32.exeが正常に実行されていますか? –

3

問題の行を確認してください。互換性のある2つのタイプが互換性がないと言っている場合は、単純な割り当てよりも複雑なものがあります。私が推測しなければならないものは、何か関数ポインタを渡していて、APIが変更されています。そのケースを確認してみてください...

関連する問題