Simptomi
Ako računar ima nikada nisu pokrenuti Microsoft Internet Explorer i funkciju WinHttpGetIEProxyConfigForCurrentUser u bilo koji program, dobijate sledeću poruku o grešci:
ERROR_FILE_NOT_FOUND
Uzrok
Funkcija WinHttpGetIEProxyConfigForCurrentUser koristi sljedeći registarski podključ:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet postavkeOvaj potključ registratora kreira se prvi put da je Internet Explorer pokreće. Ako računar nije pokrenut Internet Explorer, ovaj potključ registratora ne postoji. Kada si pozvati funkciju WinHttpGetIEProxyConfigForCurrentUser u programu, funkcija pretražuje za ovu stavku registratora mogu da ga nadjem i dobijate poruku o grešci.
Rešenje
Da biste rešili ovaj problem, pokrenite Internet Explorer, a zatim koristite funkciju WinHttpGetIEProxyConfigForCurrentUser u bilo koji program.
Više informacija
Koraci koji dovode do javljanja problema
-
Prijavite se na računar gde Internet Explorer nikada nije koristila.
-
Pokrenite Microsoft Visual Studio .NET.
-
U meniju datoteka postavite pokazivač na nju, a zatim izaberite stavku projekat.
-
U okviru Tipovi projekataizaberite stavku Visual C++ projekti.
-
Pod Predlošci, kliknite na Win32 projekta.
-
U polju " ime ", upišite Test, a onda kliknite na OK.
-
Na stranici Dobro došli u čarobnjak za Win32 aplikacija , kliknite na dugme Postavke aplikacije.
-
U okviru tip aplikacije, izaberite Console aplikaciju, a zatim kliknite na dugme Završi. Test.cpp datoteka je kreirana.
-
Zamenite postojeću šifru u Test.cpp datoteci sledeći 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
Napomena Winhttp.h datoteke i datoteke sa Winhttp.lib su obuhvaćeni na platformi Microsoft komplet za razvoj softvera (SDK). Da biste preuzeli Platform SDK, posetite sledeću Microsoft Web lokaciju:
-
U projektu meniju kliknite na Test svojstva.
-
U lijevom oknu, kliknite dvaput na Linker.
-
U okviru Linker, izaberite unos.
-
U desnom oknu, upišite winhttp.lib u polje Dodatne zavisnosti , a zatim kliknite na dugme u redu.
-
U meniju izgradi kliknite Izgradi rešenje.
-
Pritisnite kombinaciju tastera CTRL + F5 za pokretanje programa bez modulu za otklanjanje grešaka. Dobijate poruku o grešci koja je pomenuta u odeljku „Simptomi”.
Reference
Za više informacija, posetite sledeću Microsoft Developer Network (MSDN) Web lokaciju: