Ознаки

Якщо на комп'ютері інстальовано ніколи не виконувати Microsoft Internet Explorer і в будь-яку програму використовується функція WinHttpGetIEProxyConfigForCurrentUser , з'являється таке повідомлення про помилку:

ERROR_FILE_NOT_FOUND

Причина

Функція WinHttpGetIEProxyConfigForCurrentUser , використовує такий підрозділ реєстру:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet SettingsЦей розділ створюється під час першого запуску в Internet Explorer. Якщо на комп'ютері, не, запустити браузер Internet Explorer, підрозділ реєстру не існує. Під час виклику функції WinHttpGetIEProxyConfigForCurrentUser , у програмі функції шукає цей запис реєстру і не вдається знайти, і з'являється повідомлення про помилку.

Спосіб вирішення

Щоб вирішити цю проблему, запустіть браузер Internet Explorer і потім функція WinHttpGetIEProxyConfigForCurrentUser в будь-яку програму.

Додаткові відомості

Відтворення проблеми

  1. Увійдіть на комп'ютер, коли браузер Internet Explorer не використовував.

  2. Запустіть Microsoft Visual Studio .NET.

  3. У меню " файл " створитиі виберіть проект.

  4. У Проекті типівнатисніть кнопку " Visual C++ проектах".

  5. У розділі шаблонинатисніть кнопку " Win32 проекту".

  6. У полі " ім'я " введіть перевіркита натисніть кнопку OK.

  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. log і Winhttp.lib txt входить розробки програмного забезпечення (SDK) платформі Microsoft. Щоб завантажити пакет SDK для платформи, перейдіть на веб-сайт корпорації Майкрософт:

    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

  10. У меню проекту , виберіть Випробування властивостей.

  11. У лівій області вікна двічі клацніть пункт зв'язування.

  12. У розділі зв'язуванняклацніть " вхід".

  13. У правій області вікна клацніть введіть winhttp.lib в області Додаткові залежності і натисніть кнопку OK.

  14. У меню створити виберіть пункт " Побудувати рішення".

  15. Натисніть сполучення клавіш CTRL + F5, щоб запустити програму без налагоджувача. З'являється повідомлення про помилку, описане в розділі "Ознаки".

Посилання

Щоб отримати додаткові відомості відвідайте веб-сайт Microsoft Developer Network (MSDN):

http://msdn2.microsoft.com/en-us/library/aa384096.aspx

Потрібна додаткова довідка?

Отримуйте нові функції раніше за інших
Приєднатися до Microsoft оцінювачів

Чи були ці відомості корисні?

Наскільки ви задоволені якістю перекладу?
Що вплинуло на ваші враження?

Дякуємо за ваш відгук!

×