Simptomi
Ja dators nekad palaist Microsoft Internet Explorer un funkciju WinHttpGetIEProxyConfigForCurrentUser jebkurā programmā, tiek parādīts šāds kļūdas ziņojums:
ERROR_FILE_NOT_FOUND
Cēlonis
WinHttpGetIEProxyConfigForCurrentUser funkcija izmanto šādu reģistra apakšatslēgu:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet SettingsReģistra apakšatslēgas tiek izveidota, pirmoreiz tiek palaista programma Internet Explorer. Ja datoru nevar palaist Internet Explorer, šajā reģistra apakšatslēgā nepastāv. Kad zvanu funkciju WinHttpGetIEProxyConfigForCurrentUser programmā šo reģistra ierakstu meklē un nevar atrast, un tiek parādīts kļūdas ziņojums.
Risinājums
Lai novērstu šo problēmu, startējiet programmu Internet Explorer un pēc tam izmantojiet funkciju WinHttpGetIEProxyConfigForCurrentUser jebkurā programmā.
Papildinformācija
Problēmas atveidošanas darbības
-
Piesakieties datorā, kurā nekad netiek lietota Internet Explorer.
-
Startējiet Microsoft Visual Studio .NET.
-
Izvēlnē Fails norādiet uz izveidot jaunuun pēc tam noklikšķiniet uz projektu.
-
Noklikšķiniet uz Visual C++ projektisadaļā Projektu tipi.
-
Sadaļā veidnesnoklikšķiniet uz Win32 projektu.
-
Nosaukuma lodziņā ierakstiet pārbaudesun pēc tam noklikšķiniet uz Labi.
-
Iepazīšanās Win32 Application vedņa lapā noklikšķiniet uz Lietojumprogrammas iestatījumus.
-
Lietojumprogrammas tips, noklikšķiniet uz konsoles lietojumprogrammuun pēc tam noklikšķiniet uz pabeigt. Test.cpp fails ir izveidots.
-
Aizstāt esošo failu Test.cpp kods ar šādu kodu:
#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
Piezīme. Winhttp.h failu un Winhttp.lib fails ir iekļauti Microsoft platformu programmatūras izstrādes komplekts (SDK). Lai lejupielādētu platformas SDK, apmeklējiet šo Microsoft Web vietu:
-
Projekta izvēlnē noklikšķiniet uz Rekvizīti pārbaudes.
-
Kreisajā rūtī veiciet dubultklikšķi uz Linker.
-
Saskaņā ar Linker, noklikšķiniet uz ievades.
-
Labajā rūtī veiciet Papildu atkarības laukā ierakstiet winhttp.lib un pēc tam noklikšķiniet uz Labi.
-
Veidot izvēlnē noklikšķiniet uz Izveidot risinājumu.
-
Nospiediet CTRL + F5, lai palaistu programmu, neizmantojot atkļūdotāju. Tiek saņemts kļūdas ziņojums, kas ir minēti sadaļā "Simptomi".
Atsauces
Lai iegūtu papildinformāciju, apmeklējiet šo Microsoft izstrādātāju tīkla (MSDN) vietni: