【问题标题】:Intellisense auto-complete is causing VC++ in Visual Studio 2005 SP1 to crashIntellisense 自动完成功能导致 Visual Studio 2005 SP1 中的 C++ 崩溃
【发布时间】:2025-12-14 14:15:01
【问题描述】:

UPDATE1:我已经重新安装了 Visual Studio,但我仍然遇到这个问题。我的猜测是我的环境有问题。

更新 2:潜入。 我将 windbg 附加到 devenv 并在 windbg 中为 msenv!_tailMerge_WINMM_dll 设置断点并进行跟踪。

这是尝试使用 LoadLibrary API 加载 winmm.dll。我可以看到 LoadLibrary 失败并且 GetLastError 返回 5,即“拒绝访问”。

现在,为什么 vs 会被拒绝访问 winmm.dll?

---开始原创---

我目前在 C++ 中使用 Visual Studio 2005 SP1 Intellisense 时遇到严重问题。我有一个关于项目的全原生解决方案。每当我或编辑器尝试调用智能感知自动完成 pow 时,Visual Studio 就会崩溃。我什至用一个全新的控制台应用程序尝试了这个。 Ctrl + Space 在空的 main 和 Visual Studio 崩溃。

我在谷歌上寻求帮助,但无济于事。我曾尝试删除 ncb 文件,但在这方面也没有运气。

我目前正在关闭 Intellisense,如本文所示: Visual Studio 2005 - 'Updating IntelliSense' hang-up

而且我没有崩溃,但如果有智能感知回来肯定会很好

来自崩溃转储的调用堆栈。

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

【问题讨论】:

  • 这才刚刚开始发生吗?您最近是否安装了类似 SP 的东西?您是否禁用了加载项?你试过重装VS吗?
  • 一直在*上,我从来不知道markdown中的 - 很好;-p
  • @JP IT 重新安装了我的笔记本电脑,包括 VS2k5 SP1,从那时起我就遇到了问题。我禁用了所有加载项。我今天将尝试修复安装。 @Marc Cool 嗯,我很确定我在 Jeff Atwood 的博客上看到了这一点。 codinghorror.com/blog

标签: c++ visual-studio visual-studio-2005 intellisense


【解决方案1】:

我会尝试以下一组步骤来尝试解决问题

  • 重置所有设置:工具 -> 导入/导出设置 -> 重置所有设置
  • 删除 HKCU:\Software\Micosoft\VisualStudio\9.0 然后重启 VS
  • 通过添加删除程序修复VS安装
  • 禁用所有第 3 方插件

【讨论】:

  • 我会试试这个,我得等 IT 做修复
  • 删除了 HKCU 中的整个 VisualStudio 文件夹,现在 VS2013 并没有在智能感知上崩溃...... 4 年后。
【解决方案2】:
  • 您是否尝试修复 Visual C++ 安装?
  • 您是否安装了任何插件?尝试禁用它们。

删除项目目录中的 .ncb 文件可能是值得的,以防它被损坏(.ncb 是智能感知数据库文件)。

如果您以 C++ 开发为生(或至少是在进行认真的开发),那么没有理由不使用 Visual Assist。

【讨论】:

  • 我已经尝试了一切,除了修复,这将是我列表中的下一个。我同时使用 c++ 和 C#,并在 CodeRush 和 Refactor 上投入了我的钱!
【解决方案3】:

多么奇怪的问题。

我终于用 sysinternals 的 procmon 弄明白了:

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

在最近一次 IT 之旅后,我的声音不知何故更改为 Windows 的默认声音。这导致视觉工作室在智能感知发生时播放咔哒声。为了播放这个声音,必须加载 winmm.dll,它位于 c:\windows\system32\winmm.dll。

我想通过调试尝试将 winmm.dll 符号下载到名为 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\winmm.dll 的 FOLDER 中。当然,这个文件夹对 Visual Studio 来说看起来很好吃,所以当它尝试将 winmm.dll 文件夹加载为 dll 文件时 POW!!!

我删除了文件夹和其他一些 .dll 文件夹:) 一切都很好。

感谢您的帮助。

【讨论】:

    【解决方案4】:

    请确保您已使用服务包,我认为 VS 2005 处于 SP1。

    【讨论】:

      【解决方案5】:

      尝试“清理”解决方案,即删除(重命名)所有由 Visual Studio 创建的临时文件,如 *.ncb、*.suo 等。其中一个文件可能已损坏(您的问题听起来像是 IntelliSense 数据库已损坏)。

      【讨论】:

      • 我试过这个。我也遇到了新解决方案的问题。
      • 嗯,这只是一个盲目的猜测,有时像这样的行为可以解决问题。
      • 还有一个猜测:您是否尝试在安全模式下启动 Visual Studio (*.com/questions/885636/…)?
      最近更新 更多