InternetGetConnectedStateEx的用法

时间:2015-03-09 13:44:42

标签: c++ windows

我正在尝试使用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");
    }

谢谢!

1 个答案:

答案 0 :(得分:3)

documentation说(强调我的):

  

lpszConnectionName [out]

     

指向接收连接名称的字符串值。

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

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

DWORD dwFlags;
TCHAR lpszConnectionName[512];

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