我正在尝试使用InternetGetConnectedStateEx,但无法检索lpszConnectionName。如果将其初始化为0,则没有任何值,但是如果我使用_T(“hol”)进行初始化;我遇到访问冲突

    DWORD dwFlags;
    LPTSTR lpszConnectionName = _T("hol");
    DWORD dwNameLen = 3;

    if (InternetGetConnectedStateEx(&dwFlags, lpszConnectionName, dwNameLen, NULL))
    {
        printf("Connected to internet");
    }
    else {
        printf("not connected");
    }

谢谢!

最佳答案

documentation说(强调我):



这是一个输出参数,如果有一个 Activity 参数,它将用连接名称填充。自行指定此参数的内容是一个错误,使它双重指向字符串文字(因为修改它会触发未定义的行为)。

调用该函数的适当方法如下:

DWORD dwFlags;
TCHAR lpszConnectionName[512];

if (InternetGetConnectedStateEx(&dwFlags, lpszConnectionName,
    _countof(lpszConnectionName), NULL)) {
    // ...
} else {
    // ...
}

关于c++ - InternetGetConnectedStateEx的用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28943508/

10-09 06:00