2

我正在通过将业务逻辑与 GUI 分离来清理旧的 C++-CLI 软件。尽管我已经单独留下了 windows 窗体设计器代码,但它现在不会显示我的窗体,而是引发异常:

Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)) 

调用堆栈如下所示:

at EnvDTE.CodeFunction.GetStartPoint(vsCMPart Part)
at Microsoft.VisualC.CppCodeParser.OnMethodPopulateStatements(Object sender, EventArgs e)
at System.CodeDom.CodeMemberMethod.get_Statements()
at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration)
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
at System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host) 

...都不是我的代码。我可能打扰了什么?

4

3 回答 3

3

根据调用堆栈,WinForms 设计器似乎在试图读取InitializeComponents生成文件中方法内的代码时感到窒息。实际的错误方是 C++ 代码模型实现。

这里最有可能发生的是方法中的特定语句导致代码模型在此处出错。我将首先注释掉整个方法,验证是否可以解决问题,然后慢慢取消注释部分,直到找到有问题的行

于 2013-04-02T15:58:00.030 回答
0

检查函数中是否没有您自己的代码。我InitializeComponent()替换了它,它现在可以正常工作了)

于 2014-10-01T19:06:08.603 回答
-1

我用谷歌搜索了这个错误,有几个线程引用了各种不同的应用程序,这些应用程序都会产生这个错误:

http://forums.iis.net/t/1148764.aspx/1http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/11e91d76-f5f3-45c3-b3f6-30c1e4121b9f/

只有两个

此错误的主要原因似乎是用户或进程试图访问、运行或写入它无权访问的内容。

您是否尝试过以管理员身份运行应用程序?

如果这不起作用,请确保项目文件夹和应用程序文件夹都在同一个分区上,因为这会影响权限。

自从安装了该应用程序以来,您还没有升级您的操作系统?如果是这样,您的 GUID 可能与应用程序上存储的 GUID 不匹配,这可能导致错误卸载/重新安装将解决此问题。

希望有帮助

于 2013-04-02T16:05:16.873 回答