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 に答える