Simptomai
Jei kompiuteris niekada paleisti "Microsoft Internet Explorer" ir naudojate funkciją WinHttpGetIEProxyConfigForCurrentUser bet kuria programa, galite gauti tokį klaidos pranešimą:
ERROR_FILE_NOT_FOUND
Priežastis
WinHttpGetIEProxyConfigForCurrentUser funkcija naudoja šį dalinį registro raktą:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet SettingsŠiame registro daliniame rakte yra sukurta, "Internet Explorer" paleidžiama pirmą kartą. Jei jūsų kompiuteris turi paleisti "Internet Explorer", šiame registro daliniame rakte nėra. Kai galite skambinti WinHttpGetIEProxyConfigForCurrentUser funkcija programoje, funkcija ieško šį registro įrašą ir negalite jo rasti, ir galite gauti klaidos pranešimą.
Sprendimas
Norėdami išspręsti šią problemą, paleiskite "Internet Explorer", ir tada naudokite funkciją WinHttpGetIEProxyConfigForCurrentUser bet kurią programą.
Daugiau informacijos
Problemos atkūrimo veiksmai
-
Įeikite į kompiuterį, kai "Internet Explorer" niekada nebuvo naudojamas.
-
Paleiskite "Microsoft Visual Studio .NET."
-
Meniu failas , perkelkite pelės žymiklį ant naujas, ir spustelėkite projekto.
-
Pagal Projekto tipai, spustelėkite Visual C ++ projektai.
-
Pagal Šablonai, spustelėkite Win32 projekto.
-
Lauke pavadinimas įveskite testas, ir spustelėkite gerai.
-
Sveiki atvykę į Win32 taikomoji programa vedlio puslapyje spustelėkite Taikomosios programos parametrus.
-
Pagal programos rūšį, spustelėkite konsolės programos, ir spustelėkite baigti. Test.cpp failas yra sukurtas.
-
Esamas kodas Test.cpp faile pakeiskite šį kodą:
#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
Pastaba. Winhttp.h failą ir Winhttp.lib failą į "Microsoft" platformos programinės įrangos kūrimo rinkinys (SDK). Norėdami atsisiųsti SDK platforma, apsilankykite šioje "Microsoft" svetainėje:
-
" Project " meniu spustelėkite Bandymų ypatybės.
-
Kairiojoje srityje dukart spustelėkite saitai.
-
Saitai, spustelėkite įvesties.
-
Dešiniojoje srityje, Papildomų priklausomybių laukelyje įveskite winhttp.lib ir spustelėkite gerai.
-
Meniu sukurti spustelėkite Sukurti sprendimą.
-
Paspauskite CTRL + F5, kad paleisti programą be derinimo programa. Galite gauti klaidos pranešimą, paminėtam skyriuje "Požymiai".
Nuorodos
Jei norite gauti daugiau informacijos, apsilankykite šioje "Microsoft" programų kūrėjų tinklo (MSDN) žiniatinklio svetainėje: