Я пытаюсь изучить С++, в частности экспортировать функции из моей библиотеки. Я создал файл определения модуля (.DEF), в котором указаны экспортируемые функции. Синтаксис соответствует тому, что я прочитал в MSDN. а>.
Я пытаюсь понять, почему я получаю ошибки IntelliSense практически в каждом операторе файла DEF.
Например:
EXPORTS
LibDescription @1 PRIVATE
LibInitialize @2 PRIVATE
LibVersion @3 PRIVATE
Выдает ошибки intellisense в следующем порядке:
unexpected token '@'
unexpected token 'PRIVATE'
Несмотря на все это (это ошибки, а не предупреждения), библиотека отлично строится и, более того, экспортирует все необходимые функции, так что это просто неприятность, которая затрудняет просмотр реальных ошибок кода в списке.
Это ожидаемое поведение или есть очевидная настройка, которую я где-то пропустил?
редактировать: как предлагается в комментариях, ошибки, скорее всего, исходят от компоновщика, а не от компилятора, поскольку о них нет упоминания в панели вывода компилятора.
edit2: то, что генерирует ошибки, на самом деле является intellisense, отредактированным заголовком и тегами.
.def
читается компоновщиком. Если компилятор сам выдает эти ошибки, возможно, вы неправильно настроили свойство инструмента сборки вашего файла.def
. - person Frédéric Hamidi   schedule 19.01.2012Item Type
в VS2010, аDoes not participate in build
является правильным значением для файла.def
(я только что перепроверил новый проект). Вы можете посмотреть коды ошибок на панелиOutput
? Это точно скажет, исходят ли они от компилятора или компоновщика. - person Frédéric Hamidi   schedule 19.01.2012Output
(префиксы кодов ошибок позволяют различать их). Если эти ошибки не отображаются на панелиOutput
, за них отвечает другой компонент. Сильно подозреваю Intellisense, но объяснить такое поведение пока не могу. У вас установлены надстройки в Visual Studio? - person Frédéric Hamidi   schedule 19.01.2012Tools | Options
, перейдите кText Editor > File Extension
и проверьте, связано ли расширениеdef
с языковым редактором. Это не должно. - person Frédéric Hamidi   schedule 19.01.2012