• 【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);
            }
        }
    
    }
  • 相关阅读:
    移动SI[转]
    什么是云计算
    ToString()格式和用法大全[转]
    SQLJOIN之完全用法[转]
    DIV样式汇总
    CSS+DIV之强化background属性
    SQLserver中用convert函数转换日期格式
    session丢失与解决办法的资料
    div滤镜结合ajax,实现登录
    什么是ajax
  • 原文地址:https://www.cnblogs.com/waimen/p/6589373.html
Copyright © 2020-2023  润新知