WinHttpGetIEProxyConfigForCurrentUser फ़ंक्शन का उपयोग करने का प्रयास करते हुए आपको "ERROR_FILE_NOT_FOUND" त्रुटि संदेश प्राप्त होता है

लागू: Internet Explorer

लक्षण


यदि आपका कंप्यूटर Microsoft Internet Explorer कभी चला है, और आप किसी भी प्रोग्राम में WinHttpGetIEProxyConfigForCurrentUser फ़ंक्शन का उपयोग करें, तो आपको निम्न त्रुटि संदेश प्राप्त होता है:
ERROR_FILE_NOT_FOUND

कारण


WinHttpGetIEProxyConfigForCurrentUser फ़ंक्शन का उपयोग करता है निम्न रजिस्ट्री उपकुंजी:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet सेटिंग्स
Internet Explorer चलाता है जो पहली बार इस रजिस्ट्री उपकुंजी बन जाता है। यदि आपका कंप्यूटर Internet Explorer चलाएँ नहीं है, तो यह रजिस्ट्री उपकुंजी मौजूद नहीं है। जब आप एक प्रोग्राम में इस रजिस्ट्री प्रविष्टि के लिए फ़ंक्शन खोजें WinHttpGetIEProxyConfigForCurrentUser फ़ंक्शन को कॉल और इसे नहीं ढूँढ सकता, और आपको त्रुटि संदेश प्राप्त होता है।

समाधान


इस समस्या को हल करने के लिए, Internet Explorer प्रारंभ करें, और उसके बाद किसी भी प्रोग्राम में WinHttpGetIEProxyConfigForCurrentUser फ़ंक्शन का उपयोग करें।

अधिक जानकारी


समस्या को पुन: उत्पन्न करने के लिए चरण

  1. जहाँ Internet Explorer कभी भी उपयोग किया गया है एक कंप्यूटर पर लॉग ऑन करें।
  2. Microsoft Visual Studio .NET प्रारंभ करें।
  3. फ़ाइल मेनू पर, नयाको इंगित करें, और उसके बाद प्रोजेक्टक्लिक करें।
  4. दृश्य C++ प्रोजेक्ट्सके अंतर्गत प्रोजेक्ट प्रकार, क्लिक करें।
  5. Win32 प्रोजेक्टके अंतर्गत टेम्पलेट्स, क्लिक करें।
  6. नाम बॉक्स में, टाइप करें परीक्षण, और तब ठीकक्लिक करें।
  7. Win32 अनुप्रयोग विज़ार्ड में आपका स्वागत है पृष्ठ पर, अनुप्रयोग सेटिंग्सक्लिक करें।
  8. अनुप्रयोग प्रकार, के अंतर्गत कंसोल अनुप्रयोगक्लिक करें, और उसके बाद समाप्तकरें क्लिक करें। Test.cpp फ़ाइल बनाई जाती है।
  9. Test.cpp फ़ाइल में मौजूदा कोड को निम्न कोड से प्रतिस्थापित करें:
    #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
    नोट Winhttp.h फ़ाइल और Winhttp.lib फ़ाइल Microsoft प्लेटफ़ॉर्म सॉफ़्टवेयर डेवलपमेंट किट में (SDK) शामिल हैं। प्लेटफ़ॉर्म SDK को डाउनलोड करने के लिए, निम्न Microsoft वेब साइट पर जाएँ:
  10. प्रोजेक्ट मेनू पर, परीक्षण, गुणक्लिक करें।
  11. बाएँ फलक में, डबल-क्लिक करें Linker.
  12. इनपुटके अंतर्गत Linker, क्लिक करें।
  13. दाएँ फलक में, winhttp.libअतिरिक्त निर्भरताएँ फ़ील्ड में टाइप करें, और उसके बाद ठीकक्लिक करें।
  14. बिल्ड मेनू पर, क्लिक करें समाधान बनाएँ
  15. डिबगर के बिना प्रोग्राम को चलाने के लिए CTRL + F5 दबाएँ। आप जो "लक्षण" खंड में वर्णित त्रुटि संदेश प्राप्त होता है।

संदर्भ


अधिक जानकारी के लिए, निम्न Microsoft डेवलपर नेटवर्क (MSDN) वेब साइट पर जाएँ: