Автозаполнение Intellisense приводит к сбою VC++ в Visual Studio 2005 SP1
-
10-07-2019 - |
Вопрос
ОБНОВЛЕНИЕ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 повреждена).