Simptomi
Ako računalo nikada pokrenite Microsoft Internet Explorer i koristite funkciju WinHttpGetIEProxyConfigForCurrentUser u bilo kojem programu, primiti sljedeću poruku o pogrešci:
ERROR_FILE_NOT_FOUND
Uzrok
Funkcija WinHttpGetIEProxyConfigForCurrentUser koristi sljedeći potključ registra:
Postavke HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetStvara se registarski podključ prvi put pokrene Internet Explorer. Ako vaše računalo ima pokrenite Internet Explorer, taj se potključ registra ne postoji. Kada poziv funkcije WinHttpGetIEProxyConfigForCurrentUser u programu, funkcija pretražuje ovu stavku registra i ne može pronaći, a poruka o pogrešci.
Rješenje
Da biste riješili taj problem, pokrenite Internet Explorer i koristiti funkciju WinHttpGetIEProxyConfigForCurrentUser u bilo koji program.
Dodatne informacije
Koraci za ponavljanje postupka problem
-
Prijavite se na računalo na kojem Internet Explorer nikad korišten.
-
Pokrenite Microsoft Visual Studio .NET.
-
Na izborniku datoteka pokažite na Novo, a zatim projekta.
-
Pod Vrste projekta, kliknite Visual C++ projekti.
-
Pod predloške, kliknite Win32 projekta.
-
U okvir naziv upišite Test, a zatim kliknite u redu.
-
Na stranici dobrodošlice Win32 aplikacija čarobnjaka pritisnite Postavke aplikacije.
-
Pod Vrsta aplikacijekliknite aplikacije konzole, a zatim Završi. Stvara se datoteka Test.cpp.
-
Zamijeni postojeću šifru u datoteci Test.cpp sljedeć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 Datoteka Winhttp.h i datoteka Winhttp.lib su uključeni u Microsoft Platform software development kit (SDK). Preuzmite Platform SDK, posjetite sljedeće Microsoftovo Web-mjesto:
-
Na izborniku projekta kliknite Test svojstva.
-
U lijevom oknu dvaput pritisnite poveznik.
-
Pod poveznikpritisnite unos.
-
U desnom oknu upišite winhttp.lib u polju Dodatne zavisnosti , a zatim u redu.
-
Na izborniku izgraditi pritisnite Izgraditi rješenje.
-
Pritisnite CTRL + F5 da biste pokrenuli program bez program za ispravljanje pogrešaka. Primite poruku o pogrešci koje se spominju u odjeljku "Simptomi".
Reference
Za dodatne informacije posjetite sljedeće Microsoft Developer Network (MSDN) Web-mjesto: