如何调试在InitInstance之前崩溃的C ++ / CLI MFC应用程序

时间:2012-07-09 07:32:25

标签: .net-4.0 com mfc c++-cli mixed-mode

我有使用MFC(主要)和COM构建的这个可怕的C ++应用程序。它链接到几个库并进行了大量的科学计算。所以,现在我想为它添加一些新功能,作为组织策略,我们正在使用.NET开发所有新功能。因此,这个新的UI功能将使用WPF构建,并将在现有的C ++应用程序中使用。

我知道如何在C ++应用程序中使用WPF控件,所以这不是问题。问题是,当我尝试在此项目上打开CLR时,在链接阶段需要花费大量时间(大约10分钟)来执行链接并生成混合模式可执行文件。最后,它设法这样做并成功创建可执行文件。但问题是每当我启动这个可执行文件时,它都会崩溃。我尝试调试InitInstance,但在此之前它崩溃了。我有点难以接受下一步的尝试。

有没有人知道这可能是什么原因。

混合模式程序集的目标框架是4.0(应该是这样)所以这不是问题所在。

仅供参考,ILDasm也无法加载此exe。它需要花费很多时间,没有错误,但它也没有加载它。这给我的印象是不能正确创建托管图像。

1 个答案:

答案 0 :(得分:0)

不确定是否有必要,但也不会有任何伤害。新的MFC项目在CWinApp派生类的构造函数中有这个:

#ifdef _MANAGED
    // If the application is built using Common Language Runtime support (/clr):
    //     1) This additional setting is needed for Restart Manager support to work properly.
    //     2) In your project, you must add a reference to System.Windows.Forms in order to build.
    System::Windows::Forms::Application::SetUnhandledExceptionMode(System::Windows::Forms::UnhandledExceptionMode::ThrowException);
#endif
相关问题