zoukankan      html  css  js  c++  java
  • 启动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>删掉,再编译运行,居然没问题了。简直搞笑。

  • 相关阅读:
    判断质数
    猜拳三局两胜
    输入年月日判断是这一年的哪一天
    switch case
    猜拳
    判断年月日是否正确
    老狼老狼几点了
    判断是否中奖
    平滑部署war包到tomcat-deploy.sh
    只用120行Java代码写一个自己的区块链-3挖矿算法
  • 原文地址:https://www.cnblogs.com/qrlozte/p/4734470.html
Copyright © 2011-2022 走看看