IDE успешно компилируется, но dcc32 пишет: Ошибка: E2010 Несовместимые типы: 'Integer' и 'NativeInt' - PullRequest
6 голосов
/ 22 декабря 2011

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;

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

Ответы [ 3 ]

3 голосов
/ 22 декабря 2011

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

1 голос
/ 22 декабря 2011

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

Embarcadero Delphi для Win32 версии 23.0

1 голос
/ 22 декабря 2011

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

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

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

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

...