• 启动MFC程序的时候报错:0xC0000005: 读取位置 0x00000000 时发生访问冲突


    此程序的结构是

    MouseCap.h

    #pragma once
    
    #include <afxwin.h>
    
    class MouseCapApp : public CWinApp
    {
    public:
        virtual BOOL InitInstance();
    };
    class CMainWindow : public CFrameWnd
    {
    protected:
        ...public:
        CMainWindow();
    protected:
        afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
        afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
        afx_msg void OnMouseMove(UINT nFlags, CPoint point);
        afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);
        DECLARE_MESSAGE_MAP()
    };

    MouseCap.cpp

    #include "MouseCap.h"
    
    MouseCapApp theApp;
    
    ... // 其他实现

    编译没问题,启动Debug

    报错如下

    0xC0000005: 读取位置 0x00000000 时发生访问冲突

    调用堆栈显示,还没有执行到我写的代码就报错,Null Pointer Exception

    结果在MouseCap.cpp加上如下代码就好了(不明觉厉,难道说间接include不行?)

    #include <afxwin.h>

    再编译运行,没问题

    然后我又把MouseCap.cpp中的#include <afxwin.h>删掉,再编译运行,居然没问题了。简直搞笑。

  • 相关阅读:
    selenium修改cookie
    unittest同时支持参数化和生成html报告
    webdriver API
    selenium中CSS选择器定位
    VirtualBox中安装CentOS 7_Linux
    Selenium常见问题
    RFS常见问题
    RFS--RequestLibrary
    Fiddler抓取HTTPS请求配置
    Redis
  • 原文地址:https://www.cnblogs.com/qrlozte/p/4734470.html
Copyright © 2020-2023  润新知