증상
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 함수를 사용 하 여 프로그램.
추가 정보
문제를 재현하는 방법
-
Internet Explorer를 사용 하지 않은 컴퓨터에 로그온 합니다.
-
Microsoft Visual Studio.NET을 시작 합니다.
-
파일 메뉴에서 새로 만들기를 가리키고 프로젝트를 클릭 합니다.
-
프로젝트 형식 Visual C++ 프로젝트를 클릭 합니다.
-
템플릿 Win32 프로젝트를 클릭 합니다.
-
이름 상자에 테스트입력 한 다음 확인을 누릅니다.
-
Win32 응용 프로그램 마법사 시작 페이지에서 응용 프로그램 설정을 클릭 합니다.
-
응용 프로그램 종류 콘솔 응용 프로그램을 클릭 한 다음 마침을 클릭 합니다. Test.cpp 파일이 만들어집니다.
-
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)에 포함 됩니다. Platform SDK를 다운로드 하려면 다음 Microsoft 웹 사이트를 방문 하십시오.
-
프로젝트 메뉴에서 테스트 속성을 클릭 합니다.
-
왼쪽된 창에서 링커두 번 클릭 합니다.
-
링커 입력을 클릭 합니다.
-
오른쪽 창에서 추가 종속성 필드에 winhttp.lib 를 입력 한 다음 확인을 클릭 합니다.
-
빌드 메뉴에서 솔루션 빌드를 클릭 합니다.
-
디버거 없이 프로그램을 실행 하려면 CTRL + f 5를 누릅니다. "현상" 절에 나와 있는 오류 메시지가 나타납니다.
참조
자세한 내용을 보려면 다음 MSDN(Microsoft Developer Network) 웹 사이트를 방문하십시오.