Visual Studio Intellisense аварийно завершает работу из-за файла макроса - PullRequest
0 голосов
/ 21 сентября 2010

В Visual Studio 2005 у меня есть файл .h с макросами препроцессора.По-видимому, они слишком сложны для Intellisense в Visual Studio, потому что они вызывают сбой Visual Studio, если они присутствуют, тогда как в противном случае он работает нормально.Кто-нибудь знает способ предотвратить синтаксический анализ файла Visual Studio для Intellisense, но все же включить его в сборку.Кстати, я уже пробовал следующее:

  1. Отключение Intellisense путем переименования feacp.dll.Работает, но непрактично.
  2. Visual Assist.Работает, но $ 250.
  3. Установка Visual Studio SP1 + исправление Intellisense (KB947315).Не исправляет (и съел 1 ГБ на жестком диске).

Ответы [ 2 ]

0 голосов
/ 21 сентября 2010

Хорошо, для блага других, я собираюсь решить это сам!Я возился, и ответ таков.Если у вас возникла эта проблема, и вы удалили свой файл ncb, чтобы принудительно обновить Intellisense, вы можете доказать себе, что это работает.

# ifdef из кода нарушителя в вашем файле .h следующим образом:

#ifdef SOMETHING_UNIQUE
<the offending code>
#endif

в файле, который фактически использует макросы (файл cpp, который включает в себя файл .h):

#define SOMETHING_UNIQUE

Intellisense теперь будет игнорировать код в файле .h, который вызывает егосбой (он будет выделен серым цветом в редакторе), но все равно будет скомпилирован.

0 голосов
/ 21 сентября 2010

Первое, что нужно попробовать, это установить Visual Studio 2005 SP1.Это устраняет множество проблем, связанных с intellisense, которые могут помочь вам

Если это не решит проблему, попробуйте исключить файл из проекта.Это предотвращает появление любого его содержимого в функциях Visual Studio (например, intellisense).Если это просто заголовочный файл, он не должен влиять на сборку, поскольку сам файл не будет удален, он просто не будет считаться частью проекта.

...