zoukankan      html  css  js  c++  java
  • 【MFC】0xC0000005: 读取位置 0x00000020 时发生访问冲突

    原因:使用GetDlgItem()函数时需要先判断指针然后才可以使用。

    错误代码:

    //重新建一个线程,查询帧同步
    DWORD WINAPI SCsync_Thread(LPVOID Lparam)
    {
        CTABPAGE1 * ppPage = (CTABPAGE1 *)Lparam;;// 创建指针指向当前类
        ULONG SYNC;
        char SSync[4];
        while(1)
        {
            ppPage->ReadReg(hDev, 0x08, &SYNC, 1);//该地址读取出来低八位是同步信息
            memcpy(SSync,&SYNC,4*sizeof(char));
            if (SSync[3] == 1)//说明已经同步
            {
                ppPage->GetDlgItem(IDC_STATIC_SCsync_green)->ShowWindow(SW_SHOW);//显示绿灯
                ppPage->GetDlgItem(IDC_STATIC_SCsync_Red)->ShowWindow(SW_HIDE);
            }
            else
            {
                ppPage->GetDlgItem(IDC_STATIC_SCsync_Red)->ShowWindow(SW_SHOW);//显示红灯
                ppPage->GetDlgItem(IDC_STATIC_SCsync_green)->ShowWindow(SW_HIDE);
            }
        }
    
    }

    加上判断指针之后的正确的代码:

    //重新建一个线程,查询帧同步
    DWORD WINAPI SCsync_Thread(LPVOID Lparam)
    {
        CTABPAGE1 * ppPage = (CTABPAGE1 *)Lparam;;// 创建指针指向当前类
        ULONG SYNC;
        char SSync[4];
        while(1)
        {
            ppPage->ReadReg(hDev, 0x08, &SYNC, 1);//该地址读取出来低八位是同步信息
            memcpy(SSync,&SYNC,4*sizeof(char));
            if (SSync[3] == 1)//说明已经同步
            {
                if (ppPage->GetDlgItem(IDC_STATIC_SCsync_green))
                ppPage->GetDlgItem(IDC_STATIC_SCsync_green)->ShowWindow(SW_SHOW);//显示绿灯
                if (ppPage->GetDlgItem(IDC_STATIC_SCsync_Red))
                ppPage->GetDlgItem(IDC_STATIC_SCsync_Red)->ShowWindow(SW_HIDE);
            }
            else
            {
                if (ppPage->GetDlgItem(IDC_STATIC_SCsync_Red))//判断之后才能使用该指针
                ppPage->GetDlgItem(IDC_STATIC_SCsync_Red)->ShowWindow(SW_SHOW);//显示红灯
                if (ppPage->GetDlgItem(IDC_STATIC_SCsync_green))
                ppPage->GetDlgItem(IDC_STATIC_SCsync_green)->ShowWindow(SW_HIDE);
            }
        }
    
    }
  • 相关阅读:
    ubuntu12.04 安装eclipse
    loj 1429(可相交的最小路径覆盖)
    loj 1406(状态压缩)
    mysql数据库表插入单条数据/批量插入数据
    window7安装MongoDB详细步骤
    django中的setting全局变量的导入
    django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)
    DjangoDRF序列化组件使用
    python并发编程知识点总结
    协程+IO切换实现并发
  • 原文地址:https://www.cnblogs.com/waimen/p/6589373.html
Copyright © 2011-2022 走看看