zoukankan      html  css  js  c++  java
  • 解决:AppMsg

    类似的还有:AppMsg - Warning: Destroying non-NULL m_pMainWnd(这是因为你既没有自己delete,也没有调用DestroyWindow)

    首先解决第一个,直接列代码:

     1 class SCCApp : public CWinApp
     2 
     3 class CMainWindow : public CFrameWnd
     4 
     5 BOOL SCCApp::InitInstance()
     6 {
     7     m_pMainWnd = new CMainWindow;
     8     if (!::RegisterHotKey(m_pMainWnd->GetSafeHwnd(), 0x0001, NULL, VK_F1))
     9     {
    10         ::MessageBox(NULL, _T("注册F1热键失败!请关闭热键冲突的程序并重启本程序!"),
    11             _T("错误"), MB_ICONERROR);
    12         delete m_pMainWnd;
    13         return FALSE;
    14     }
    15     m_pMainWnd->ShowWindow(m_nCmdShow);
    16     m_pMainWnd->UpdateWindow();
    17     return TRUE;
    18 }

    12行,你直接delete,但该window不会收到WM_DESTROY and WM_NCDESTROY消息,所以无法正确的销毁,替换为:

    m_pMainWnd->DestroyWindow();

    不需要你手动写delete,这是因为虽然CWnd的PostNcDestroy不会调用delete this,但CFrameWnd的PostNcDestroy会调用delete this。你调用完之后m_pMainWnd会变为NULL,你可以在下面加如下代码验证:

    if (m_pMainWnd == NULL)
        std::ofstream os("NULL");

    最开始我在m_pMainWnd->DestroyWindow()后面用delete m_pMainWnd来验证发现没有报错,就是因为delete NULL没有任何效果。

  • 相关阅读:
    EF+MVC+Bootstrap 项目实践 Day7
    JS---数组
    OS---华硕笔记本从U盘启动安装系统
    PHP--分页类
    PHP--数据库操作类
    OS---net start mysql 发生系统错误5
    MYSQL---远程连接mysql数据库提示:ERROR 1130的解决办法
    CSS-小谈LV,HA!
    MYSQL---设置存储引擎
    MYSQL---存储引擎
  • 原文地址:https://www.cnblogs.com/qrlozte/p/4738038.html
Copyright © 2011-2022 走看看