Primate poruku o pogrešci "ERROR_FILE_NOT_FOUND" kada pokušate koristiti funkciju WinHttpGetIEProxyConfigForCurrentUser

Vrijedi za: Internet Explorer

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\Internet
Stvara 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

  1. Prijavite se na računalo na kojem Internet Explorer nikad korišten.
  2. Pokrenite Microsoft Visual Studio .NET.
  3. Na izborniku datoteka pokažite na Novo, a zatim projekta.
  4. Pod Vrste projekta, kliknite Visual C++ projekti.
  5. Pod predloške, kliknite Win32 projekta.
  6. U okvir naziv upišite Test, a zatim kliknite u redu.
  7. Na stranici dobrodošlice Win32 aplikacija čarobnjaka pritisnite Postavke aplikacije.
  8. Pod Vrsta aplikacijekliknite aplikacije konzole, a zatim Završi. Stvara se datoteka Test.cpp.
  9. 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:
  10. Na izborniku projekta kliknite Test svojstva.
  11. U lijevom oknu dvaput pritisnite poveznik.
  12. Pod poveznikpritisnite unos.
  13. U desnom oknu upišite winhttp.lib u polju Dodatne zavisnosti , a zatim u redu.
  14. Na izborniku izgraditi pritisnite Izgraditi rješenje.
  15. 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: