a513155803 2019-04-12 20:27 采纳率: 100%
浏览 269
已结题

C++RegOpenKeyEx越界和缓冲区不足怎么解决

void Remote_Management()
{
    //终端服务器使用了SSL加密
    string result;
    HKEY hEky = NULL;
    LPCTSTR read = _T("SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp");
    //打开注册表
    if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, read, 0, KEY_READ, &hEky))
    {
        string buff;
        DWORD dwSize = 0;
        DWORD dwSzType = REG_SZ;
        string *lpchar = NULL;
        //查看共享是否开启
        if (ERROR_SUCCESS == RegQueryValueEx(hEky, _T("WdName"), NULL, &dwSzType, NULL, &dwSize))
        {
            lpchar = new string[dwSize];
            if (ERROR_SUCCESS == RegQueryValueEx(hEky, _T("WdName"), NULL, &dwSzType, (LPBYTE)&lpchar, &dwSize))
            {
                cout << endl;
            }
            else
                cout << endl << "错误1" << endl;
        }
        else 
            cout << endl << "错误2" << endl;
    }

    RegCloseKey(hEky);

    return;
}

将代码加上这个:lpchar = new string[dwSize];就报错越界

//终端服务器使用了SSL加密
    string result;
    HKEY hEky = NULL;
    LPCTSTR read = _T("SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp");
    //打开注册表
    if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, read, 0, KEY_READ, &hEky))
    {
        string buff;
        DWORD dwSize = 0;
        DWORD dwSzType = REG_SZ;
        string *lpchar = NULL;
        //查看共享是否开启
        if (ERROR_SUCCESS == RegQueryValueEx(hEky, _T("WdName"), NULL, &dwSzType, (LPBYTE)&buff, &dwSize))
        {
            cout << endl;
        }
        else 
            cout << endl << "错误2" << endl;
    }

    RegCloseKey(hEky);

    return;
}

不加的话就变成缓冲区不足
有什么好的解决办法

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2019-04-13 09:36
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题