Sümptomid
Kui teie arvuti on kunagi käivitage Microsoft Internet Explorer ja kasutada WinHttpGetIEProxyConfigForCurrentUser funktsiooni iga programmi, kuvatakse järgmine tõrketeade:
ERROR_FILE_NOT_FOUND
Põhjus
WinHttpGetIEProxyConfigForCurrentUser funktsioon kasutab järgmises registri alamvõtmes:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet SettingsSelle registri alamvõtme luuakse esimesel korral, kui Internet Explorer töötab. Kui teie arvuti on käivitage Internet Explorer, selle registri alamvõtmes pole olemas. Kui helistada WinHttpGetIEProxyConfigForCurrentUser funktsiooni programmis registrikirje funktsioon otsib ja ei leia seda ja kuvatakse tõrketeade.
Lahendus
Selle probleemi lahendamiseks käivitage Internet Explorer ja seejärel kasutage funktsiooni WinHttpGetIEProxyConfigForCurrentUser programmi.
Lisateave
Probleemi taasesilekutsumise juhised
-
Logige arvutisse, kui Internet Explorer pole kunagi kasutatud.
-
Käivitage Microsoft Visual Studio .NET.
-
Klõpsake menüü fail käsku Uusja klõpsake projekti.
-
Klõpsake jaotises ProjektitüüpideVisual C++ projektid.
-
Klõpsake jaotises MallidWin32 projekti.
-
Väljale nimi tippige Testja seejärel klõpsake nuppu OK.
-
Klõpsake lehel Welcome to Win32 Application WizardRakenduse sätted.
-
Rakenduse tüüpklõpsake konsooli rakendusja seejärel klõpsake nuppu Finish. Test.cpp fail on loodud.
-
Asendage kood Test.cpp faili järgmine kood:
#include "stdafx.h"#include <Windows.h>#include <Winhttp.h>using namespace std;void main(){WINHTTP_CURRENT_USER_IE_PROXY_CONFIG MyProxyConfig;if(!WinHttpGetIEProxyConfigForCurrentUser(&MyProxyConfig)){//check the errorDWORD Err = GetLastError();cout << "WinHttpGetIEProxyConfigForCurrentUser failed with the following error number: " << Err << endl;switch (Err){case ERROR_FILE_NOT_FOUND:cout << "The error is ERROR_FILE_NOT_FOUND" << endl;break;case ERROR_WINHTTP_INTERNAL_ERROR:cout << "ERROR_WINHTTP_INTERNAL_ERROR" << endl;break;case ERROR_NOT_ENOUGH_MEMORY:cout << "ERROR_NOT_ENOUGH_MEMORY" << endl;break;default:cout << "Look up error in header file." << endl; }//end switch}//end ifelse{//no error so check the proxy settings and free any stringscout << "Auto Detect is: " << MyProxyConfig.fAutoDetect << endl;if(NULL != MyProxyConfig.lpszAutoConfigUrl){wcout << "AutoConfigURL is: " << MyProxyConfig.lpszAutoConfigUrl << endl;GlobalFree(MyProxyConfig.lpszAutoConfigUrl);}if(NULL != MyProxyConfig.lpszProxy){wcout << "AutoConfigURL is: " << MyProxyConfig.lpszProxy << endl;GlobalFree(MyProxyConfig.lpszProxy);}if(NULL != MyProxyConfig.lpszProxyBypass){wcout << "AutoConfigURL is: " << MyProxyConfig.lpszProxyBypass << endl;GlobalFree(MyProxyConfig.lpszProxyBypass);}}//end elsecout << "finished!";}//end main
Märkus. Winhttp.h faili ja Winhttp.lib faili sisalduvad Microsoft Platform software development Kit (SDK). Platvormi SDK allalaadimiseks külastage järgmist Microsofti veebisaiti:
-
Klõpsake menüü ProjectTest atribuudid.
-
Vasakus paanis topeltklõpsake Linker.
-
Klõpsake jaotises Linkersisend.
-
Parempoolsel paanil tüüp winhttp.libTäiendavad sõltuvused välja ja seejärel klõpsake nuppu OK.
-
Klõpsake menüü ehitadaLahenduse luua.
-
Vajutage klahvikombinatsiooni CTRL + F5 ilma siluri programmi käivitamiseks. Kuvatakse jaotises "Tunnused" kirjeldatud tõrketeade.
Viited
Lisateabe saamiseks külastage järgmist Microsoft Developer Networki (MSDN) veebisaiti: