Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 调试断言在CScrollView中失败_C++_Mfc - Fatal编程技术网

C++ 调试断言在CScrollView中失败

C++ 调试断言在CScrollView中失败,c++,mfc,C++,Mfc,我最近将一个旧的MFC(多线程)项目从VS6移植到VS2015。该项目似乎已编译,但当我通过GUI启动操作时,我得到“调试断言失败” 程序:C:\windows\system32\mfc140d.dll文件: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp行:962 然后调试会话在以下代码处中断 #ifdef _DEBUG void CFT100View::AssertValid() const { CScrollView::A

我最近将一个旧的MFC(多线程)项目从VS6移植到VS2015。该项目似乎已编译,但当我通过GUI启动操作时,我得到“调试断言失败”

程序:C:\windows\system32\mfc140d.dll文件: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp行:962

然后调试会话在以下代码处中断

#ifdef _DEBUG
void CFT100View::AssertValid() const
{
    CScrollView::AssertValid();
}
<>这是我第一次用C++和MFC工作。如果有人能帮我解决这个问题,我将不胜感激

我跟踪了调用堆栈。AssertValid最终进入wincore.cpp。在为wincore.cpp加载符号后,我发现它写在断言失败下面的注释中

    // Note: if either of the above asserts fire and you are
    // writing a multithreaded application, it is likely that
    // you have passed a C++ object from one thread to another
    // and have used that object in a way that was not intended.
    // (only simple inline wrapper functions should be used)
    //
    // In general, CWnd objects should be passed by HWND from
    // one thread to another.  The receiving thread can wrap
    // the HWND with a CWnd object by using CWnd::FromHandle.
    //
    // It is dangerous to pass C++ objects from one thread to
    // another, unless the objects are designed to be used in
    // such a manner.

“这是我第一次使用C++和MFC”——你在编译器中做了6版本的跳转(也许更多),你没有预料到任何问题,因为你没有经验?我确实期待一些问题。我很惊讶它编译时没有错误。现在我只需要解决这个问题这可能会给出更多提示。寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:callstack应该包含您需要的所有信息。您直接或间接地调用类成员而不满足其前提条件。这通常发生在调用成员太早或在对象的生命周期中太迟时,但也可能有其他原因。没有代码,这只是一个猜测游戏。“这是我第一次使用C++和MFC”——你在编译器中做了6版的跳跃(也许更多),你没有预料到任何问题,因为你没有经验?我确实期待一些问题。我很惊讶它编译时没有错误。现在我只需要解决这个问题这可能会给出更多提示。寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:callstack应该包含您需要的所有信息。您直接或间接地调用类成员而不满足其前提条件。这通常发生在调用成员太早或在对象的生命周期中太迟时,但也可能有其他原因。但是,如果没有代码,这只是一个猜测游戏。