Автозаполнение Intellisense вызывает сбой VC ++ в Visual Studio 2005 SP1

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

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

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

Теперь, почему vs будет отказано в доступе к 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

person Justin    schedule 23.06.2009    source источник
comment
Это только начало происходить? Вы недавно установили что-то вроде SP? Вы отключили надстройки? Вы пробовали переустановить VS?   -  person JP Alioto    schedule 24.06.2009
comment
Все это время на stackoverflow, и я никогда не знал о ‹kbd› в уценке - хорошо ;-p   -  person Marc Gravell    schedule 24.06.2009
comment
@JP IT выполнил новую установку моего ноутбука, включая VS2k5 SP1, и с тех пор у меня возникли проблемы. Я отключил все свои надстройки. Сегодня попробую установить ремонт. @Marc Круто, я почти уверен, что видел это в блоге Джеффа Этвуда. codinghorror.com/blog   -  person Justin    schedule 24.06.2009


Ответы (5)


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

  • Сбросить все настройки: Инструменты - ›Настройки импорта / экспорта -› Сбросить все настройки
  • Удалите HKCU: \ Software \ Micosoft \ VisualStudio \ 9.0, а затем перезапустите VS
  • Восстановите установку VS через Установка и удаление программ
  • Отключить все сторонние плагины
person JaredPar    schedule 23.06.2009
comment
Я попробую, мне нужно подождать, пока ОН сделает ремонт - person Justin; 24.06.2009
comment
Удалил всю папку VisualStudio в HKCU, и теперь VS2013 не дает сбоев на intellisense ... 4 года спустя. - person Jared Beach; 19.08.2014

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

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

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

person Muhammad Haggag    schedule 23.06.2009
comment
Я перепробовал все, кроме ремонта, который будет следующим в моем списке. Я работаю и на C ++, и на C #, а деньги потратил на CodeRush и Refactor! - person Justin; 24.06.2009

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

Я наконец понял это с помощью procmon от sysinternals:

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

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

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

Папку удалил, и еще несколько папок .dll :) и все хорошо.

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

person Justin    schedule 24.06.2009

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

person heavyd    schedule 23.06.2009

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

person Dirk Vollmar    schedule 23.06.2009
comment
Я пробовал это. У меня тоже проблема с новыми решениями. - person Justin; 24.06.2009
comment
Что ж, это была всего лишь слепая догадка, иногда подобные действия решают проблемы. - person Dirk Vollmar; 24.06.2009
comment
И еще одно предположение: вы пытались запустить Visual Studio в безопасном режиме (stackoverflow.com/questions/885636/)? - person Dirk Vollmar; 24.06.2009