C++ 将项目从VS2008迁移到VS2013

C++ 将项目从VS2008迁移到VS2013,c++,visual-studio,visual-studio-2013,mfc,C++,Visual Studio,Visual Studio 2013,Mfc,我正在将一个项目从VS2008迁移到VS2013。当前,我在运行应用程序时遇到一个问题。 它说: **调试断言失败** 程序C:\Windows\SYSTEM32\mfc120d.dll 文件:f:\dd\vctools\vclibs\ship\atlmfc\src\mfc\doctemp.cpp 电话号码:25 这是代码中出现问题的地方: cpFormDefDocTemplate = new CMultiDocTemplate( MAIDR_MAINFRAME,

我正在将一个项目从VS2008迁移到VS2013。当前,我在运行应用程序时遇到一个问题。 它说:

**调试断言失败**
程序C:\Windows\SYSTEM32\mfc120d.dll
文件:f:\dd\vctools\vclibs\ship\atlmfc\src\mfc\doctemp.cpp
电话号码:25
这是代码中出现问题的地方:

cpFormDefDocTemplate = new CMultiDocTemplate(
        MAIDR_MAINFRAME,
        RUNTIME_CLASS(EHF_ManagerDoc),
        RUNTIME_CLASS(EHF_ManagerChildFrame),       // main SDI frame window
        RUNTIME_CLASS(EHF_ManagerView));
我不知道该怎么做。需要帮助。提前感谢。

当您说“我已经检查了代码”时,实际的断言语句是什么?这绝对不是你在发帖中的代码。显示该代码(ASSERT语句所在的代码)

例如,这里是VS2008的代码,我在第25行强调了这一点(VS2013可能类似,但并不精确):


这是您需要查看的代码。您的代码就是您的CTOR,它隐式链接回这个MFC CTOR,这个MFC CTOR导致断言。您的文档、框架或视图未正确移植。具体的断言会告诉你哪一个(实际上可以是3个,它只是在第一个到目前为止)。< /P>安装VisualC++可重分发包的版本?VS2008和VS2013:你在看AsScript的正确调用堆栈级别吗?这看起来像客户端代码(即您的代码),还是MFC代码?按字面意思打开f:\dd\vctools\vclibs\ship\atlmfc\src\mfc\doctemp.cpp(或者您实际安装它的任何位置-它可能不是f:…)。确保它是VS2013源。去25号线。该文件的我的版本(VS2008)位于CDOctTemplate类的ctor中,包含一系列断言。断言就是在那里失败的(可能是在您显示的代码调用中)。。因此,继续,按“重试”(正如对话框已经告诉您的)。这会告诉你,你没能确定哪种情况。这是代码中的错误,而不是MFC。它也与迁移无关。是的,我已经检查了上述路径中的代码。这是VS2013的来源。与VS2008中使用的代码相同。为什么不在2013年?