IDE успешно компилируется, но dcc32 пишет: Error: E2010 несовместимые типы: 'Integer' и 'NativeInt'

Delphi XE2 обновление 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;

Спасибо за помощь!

3 ответов


вы используете более старый dcc32.exe по ошибке (возможно, Delphi XE?). Проверьте настройку пути или укажите полный путь к XE2 dcc32.exe в вашей компиляции. XE2 должен отображать эту информацию о версии:

Embarcadero Delphi для компилятора Win32 версии 23.0


Проверьте строку в вопросе. Если он говорит, что два типа, которые должны быть совместимы, несовместимы, тогда происходит что-то более сложное, чем простое назначение. Если бы мне пришлось угадать, что-то передает указатель функции, и API изменился. Попробуйте проверить это дело...


вы дважды проверили, что вы не компилируете для Win64 с помощью командной строки? (т. е. убедитесь, что это действительно dcc32.exe, который называется).
В этом случае NativeInt-64bits, и было бы нормально поднять эту ошибку.

кроме того, вы пытаетесь сделать полное построение С помощью - B как (c:\program files\embarcadero\rad studio.0\bin\dcc32.exe -$O- -$W+ --no-config-B-Q...) или простой компиляции С - M как (c:\program files\embarcadero\rad studio.0\bin\dcc32.exe -$O- -$W+ --no-config-M-Q...)?

Я бы также попытался стереть все dcus, чтобы увидеть, помогает ли это.

и поскольку он работает из IDE, попробуйте захватить командную строку, показанную в области сообщений, и попробуйте ту же самую строку в консоли.