我正在尝试使用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");
}
谢谢!
答案 0 :(得分:3)
documentation说(强调我的):
lpszConnectionName [out]
指向接收连接名称的字符串值。
这是一个输出参数,如果有一个活动,将填充连接名称。自己指定这个参数的内容是一个错误,让它指向一个双字符串文字(因为修改它会触发未定义的行为)。
调用该函数的适当方法如下:
DWORD dwFlags;
TCHAR lpszConnectionName[512];
if (InternetGetConnectedStateEx(&dwFlags, lpszConnectionName,
_countof(lpszConnectionName), NULL)) {
// ...
} else {
// ...
}