Автозаполнение Intellisense вызывает сбой VC ++ в Visual Studio 2005 SP1 - PullRequest
3 голосов
/ 24 июня 2009

ОБНОВЛЕНИЕ 1: я переустановил Visual Studio, и у меня все еще есть эта проблема. Я думаю, что есть проблема с моей средой.

Обновление2: погружение в. Я прикрепил windbg к devenv и установил точку останова в windbg для msenv! _TailMerge_WINMM_dll и проследил до конца.

Это пытается загрузить winmm.dll с помощью API LoadLibrary. Я вижу, что LoadLibrary не работает, а GetLastError возвращает 5, что означает «доступ запрещен».

Теперь, почему бы не получить доступ к winmm.dll?

--- Начать оригинал ---

В настоящее время у меня серьезная проблема с Visual Studio 2005 SP1 Intellisense в C ++. У меня есть полностью нативное решение с проектом. Всякий раз, когда я или редактор пытаемся вызвать автозаполнение intellisense, происходит сбой Visual Studio. Я даже попробовал это с совершенно новым консольным приложением. Ctrl + Пробел в пустой основной и Visual Studio вылетает.

Я прибегнул к помощи по этому вопросу, но безрезультатно. Я попытался удалить файл ncb, но мне тоже не повезло.

В настоящее время я работаю с отключенным Intellisense, как показано в этой статье: Visual Studio 2005 - зависание при обновлении IntelliSense

И у меня нет сбоев, но было бы неплохо вернуть intellisense обратно

Вызов стека из аварийного дампа.

7c812a6b kernel32!RaiseException+0x53
502717a6 msenv!__delayLoadHelper2+0x139
50675186 msenv!_tailMerge_WINMM_dll+0xd
505ac3c3 msenv!CTextViewIntellisenseHost::UpdateCompletionStatus+0x1a7
505acb50 msenv!CEditView::UpdateCompletionStatus+0x30
505dcfad msenv!CEditView::CViewInterfaceWrapper::UpdateCompletionStatus+0x2a
02ae47fc vcpkg!CCompletionList::DoCompletion+0x444
02ade2ce vcpkg!CAutoComplete::PostProcess+0x240
02ade07f vcpkg!CAutoComplete::OnACParseDone+0x3e
02adac2d vcpkg!CMemberListWorkItem::OnCompleted+0x9d
029eb4e3 vcpkg!CWorkItem::ProcessPendingWorkItemCompletedCalls+0x117
029f8b4f vcpkg!CParserManager::OnIdle+0x183
0299961a vcpkg!CVCPackage::OnIdle+0x48
5014b288 msenv!ATL::CComAggObject<CTextBuffer>::QueryInterface+0x43
5a9d2394 VCProject!ATL::CComPtr<IOleInPlaceFrame>::~CComPtr<IOleInPlaceFrame>+0x24
5a9d2880 VCProject!ATL::CComObject<CVCArchy>::Release+0x10
774fd420 ole32!CRetailMalloc_GetSize+0x21
5009422b msenv!CMsoCMHandler::FContinueIdle+0x23
5009422b msenv!CMsoCMHandler::FContinueIdle+0x23

Ответы [ 5 ]

4 голосов
/ 24 июня 2009

Я бы попробовал следующий набор шагов, чтобы попытаться решить проблему

  • Сброс всех настроек: Инструменты -> Импорт / Экспорт настроек -> Сброс всех настроек
  • Удалите HKCU: \ Software \ Micosoft \ VisualStudio \ 9.0 и перезапустите VS
  • Восстановите установку VS через Add Remove Programs
  • Отключить все сторонние плагины
3 голосов
/ 24 июня 2009

Какая странная проблема.

Я наконец понял это, используя procmon от sysinternals:

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

После недавней поездки в ИТ мои звуки были каким-то образом изменены на звуки по умолчанию для окон. Это заставило visual studio воспроизводить щелкающий звук, когда происходит intellisense. Для воспроизведения этого звука необходимо загрузить winmm.dll, который находится в каталоге c: \ windows \ system32 \ winmm.dll.

Полагаю, что после отладки символы winmm.dll были загружены в FOLDER с именем C: \ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ winmm.dll. Конечно, эта папка выглядела очень вкусно для Visual Studio, поэтому при попытке загрузить папку winmm.dll в виде файла dow POW !!!

Я удалил папку и некоторые другие папки .dll :) и все хорошо.

Спасибо за вашу помощь.

3 голосов
/ 24 июня 2009
  • Вы пытались восстановить установку Visual C ++?
  • У вас установлены плагины? Попробуйте отключить их.

Возможно, стоит удалить файл .ncb в каталоге проекта, если он был поврежден (.ncb - это файл базы данных intellisense).

Если вы занимаетесь разработкой C ++ для жизни (или, по крайней мере, делаете серьезную разработку), нет никаких причин не использовать Visual Assist.

0 голосов
/ 24 июня 2009

Попробуйте «очистить» решение, то есть удалить (переименовать) все временные файлы, такие как * .ncb, * .suo и т. Д., Созданные Visual Studio. Возможно, поврежден один из этих файлов (ваша проблема звучит так, как будто база данных IntelliSense повреждена).

0 голосов
/ 24 июня 2009

Убедитесь, что у вас установлены пакеты обновлений, я думаю, что VS 2005 находится на SP1.

...