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, попробуйте захватить командную строку, показанную в области сообщений, и попробуйте ту же самую строку в консоли.