1

我正在尝试在不使用 Visual C++ 的情况下修改 C++ 中的代理设置。我找到了这个:

const wchar_t* proxyName = pnt.wc_str(); // pnt is a wxString declared earlier in the code.
INTERNET_PER_CONN_OPTION_LIST OptionList;
INTERNET_PER_CONN_OPTION Option[3];
unsigned long listSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
Option[0].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
Option[1].dwOption = INTERNET_PER_CONN_FLAGS;
Option[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
OptionList.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
OptionList.pszConnection = NULL;
OptionList.dwOptionCount = 3;
OptionList.dwOptionError = 0;

DWORD proxyType = PROXY_TYPE_DIRECT;

if (proxyName)
{
    if (proxyName[0])
    {
        proxyType = PROXY_TYPE_PROXY;
    }
}

Option[0].Value.pszValue = (LPWSTR)proxyName;
Option[1].Value.dwValue = proxyType;
if (on)
{
    Option[2].Value.pszValue = (LPWSTR)L"";
}
else
{
    Option[2].Value.pszValue = (LPWSTR)L"";
}
OptionList.pOptions = Option;

if (!InternetSetOption(0, INTERNET_OPTION_PER_CONNECTION_OPTION, &OptionList, listSize))
{
    // handle error
}

InternetSetOption(0, INTERNET_OPTION_PROXY_SETTINGS_CHANGED, NULL, NULL);

但是,因为我必须使用 MinGW 并且 MinGW 的 wininet.h 非常不同,所以在其他“未声明”消息中,我收到“'INTERNET_PER_CONN_OPTION_LIST' 未在此范围内声明”。在我所有的搜索中,我都没有找到任何关于它的东西,这要归功于 Visual c++ 如此突出。我发现了这个,但它几乎没有任何视图,没有任何答案,并且几乎一个月没有被触及,它甚至不是我想要的。我似乎也找不到任何文档。有任何想法吗?先谢谢了!

4

0 回答 0