Автозаполнение Intellisense приводит к сбою VC++ в Visual Studio 2005 SP1

StackOverflow https://stackoverflow.com/questions/1035447

Вопрос

ОБНОВЛЕНИЕ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 вылетает.

Я искал в Google помощи по этому поводу, но безрезультатно.Я попытался удалить файл 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
Это было полезно?

Решение 3

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

Я наконец понял это, используя 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 :) и все хорошо.

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

Другие советы

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

  • Сбросить все настройки:Инструменты -> Настройки импорта/экспорта -> Сбросить все настройки.
  • Удалите HKCU:\Software\Micosoft\VisualStudio\9.0 и перезапустите VS.
  • Восстановите установку VS через «Установка и удаление программ».
  • Отключите все сторонние плагины
  • Вы пытались восстановить установку Visual C++?
  • У вас установлены какие-либо плагины?Попробуйте отключить их.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top