Как я могу включить intellisense в моем проекте c ++ / cli? - PullRequest
1 голос
/ 07 июля 2010

Я использую Visual Studio 2008, и у меня есть собственный проект на языке c ++, который загружает управляемую библиотеку c ++, но в последнем случае intellisense больше не работает только для управляемого кода.

Этот проект(dll) имеет смешанный код (собственный и управляемый), и если я пишу только «::» в чистой строке, intellisense дает мне методы, наследуемые от базового класса, как обычный, а не для управляемого кода, например

array <String^>^ ContactListToChat; 

Мне нужна помощь, иначе мне придется летать вслепую.

1 Ответ

1 голос
/ 01 сентября 2011

Взято из блога MSDN, объясняющего историю intellisense: http://blogs.msdn.com/b/vcblog/archive/2008/02/29/intellisense-part-2-the-future.aspx

Мы перешли от быстрой и не очень точной к иногда быстрой и в основном точной в Visual Studio 2008 ... Мы в основном точны, за исключением того, что мы записываем только один анализ файла заголовка, даже если он может быть проанализирован по-разному в зависимости от .cpp, который включает его (т. е. различные #defines, параметры компиляции и т. д.).

Это его объяснение того, почему иногда intellisense работает блестяще и почему в других случаях он полностью слепой.

Вам следует взглянуть на некоторые предложения, поставленные в вопросе: Как заставить IntelliSense надежно работать в Visual Studio 2008

Тот, кто звучит наиболее вероятно, поможет ответом Джогна Ричардсона.

1) Неправильно заданы пути к файлам заголовков. Когда вы найдете тип, в котором intellisense не работает, используйте IDE, чтобы просмотреть каждый заголовочный файл, чтобы найти тот, который содержит тип. (Щелкните правой кнопкой мыши на #include и выберите Открыть документ ...). Если это не удалось до того, как вы дойдете до файла, который объявляет тип, то это ваша проблема. Убедитесь, что пути поиска файла заголовка установлены правильно.

2) База данных intellisense повреждена. Это происходит все время. Вам необходимо закрыть решение, удалить файл .ncb, а затем снова открыть решение. Я разместил макрос, который я использую для этого, в ответ на другой вопрос здесь.

...