Хобрук: Ваш путь к мастерству в программировании

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

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;

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


  • Как на самом деле выглядит код вокруг строки 137 файла ehshelprouter.pas? 22.12.2011
  • Покажи код!! Бьюсь об заклад, TControl.Tag задействован. 22.12.2011

Ответы:


1

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

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

22.12.2011

2

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

22.12.2011

3

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

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

22.12.2011
  • Как отключить 64 бит в dcc32.exe? 22.12.2011
  • Обновил мой ответ. Предполагается, что Dcc32.exe выдает только 32-битный код, но действительно ли это ожидаемый/хороший dcc32.exe? 22.12.2011
  • Новые материалы

    Как ИИ меняет сельское хозяйство
    Прочтите Статью Кэтлин Уолч в Forbes о том, как ИИ меняет сельское хозяйство . Сельское хозяйство и земледелие - одна из древнейших и важнейших профессий в мире. Человечество прошло долгий..

    Slack: проектирование современных интерфейсов человека и ИИ
    Когда Стюарт Баттерфилд выделил Slack из быстро исчезающей онлайн-игры Tiny Speck, его перспективы были в лучшем случае неопределенными. Существовал очевидный спрос на средства связи на рабочем..

    HTTP1.1 против HTTP2
    Http расшифровывается как HyperText Transfer Protocol, это в основном метод, который компьютеры и серверы используют для запроса и отправки информации. HTTP1.1 - это более старая версия Http, а..

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

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

    Буферы протоколов, часть 01: соглашения об именах и файловая организация
    Если вам нравится читать статьи на Medium и вы заинтересованы в том, чтобы стать участником, я буду рад поделиться с вами своей реферальной ссылкой!

    Наши партнеры
    Globex SCI — уникальная система, которая хранит и позволяет использовать большие базы данных, опубликованные в блокчейне. Используя алгоритмы глубокого обучения и ИИ, мы можем прогнозировать..