Visual Basic 6.0 응용 프로그램의 창 클래스에서 구현한 MFC ActiveX 컨트롤 서브클래스 때 Comctl32.dll에 의해 "시스템 오류 & H80004005" 오류 메시지가 나타납니다.

기술 자료 번역 기술 자료 번역
기술 자료: 223152 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

MFC ActiveX 해당 하위 창 클래스 중 하나를 통해 Visual Basic 6.0 .exe throw 다음 오류가 Comctl32.dll 원인에 의해 구현된 제어.
"시스템 오류 & H80004005 (-2147467259). 지정되지 않은 오류 "
디버그 버전의 ActiveX 컨트롤 사용하여 ASSERT를 파일의 끝에 있는 COleControl::CreateControlWindow, 또는 662 줄 근처에 있는 Ctlcore.cpp 발생합니다.

Visual Basic 6.0에서 .exe 빌드 및 Visual Basic 개발 환경 외부에서 실행 때 이 문제가 발생합니다.

원인

Visual Basic 실행 파일을 기본적으로 CreateEx에서 발생하는 일반적인 컨트롤 라이브러리 (Comctl32.dll) 초기화하지 않는 COleControl::CreateControlWindow에서 실패한 호출. 0x0000057F - GetLastError() 호출하면 제공하는 공용 컨트롤 라이브러리를 명시적으로 초기화해야 하는지 나타냅니다 창 클래스를 찾을 수 없습니다.

해결 방법

ActiveX 컨트롤의 InitInstance 내에서 호출할 수:
InitCommonControls(void)
또는
InitCommonControlsEx(LPINITCOMMONCONTROLSEX lpInitCtrls)
Comctl32.dll 로드되고 초기화된 컨트롤을 실행할 컨테이너 관계없이 보장합니다.

InitCommonControls 컨트롤의 코드에서 호출하는 대신 이를 Visual Basic 클라이언트 응용 프로그램에서 직접 호출할 수도 있습니다.
  • 일반 선언하는 것에 대한 해당 폼; 예를:
    Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
  • 호출을 추가합니다:
    InitCommonControls
    					
    Form_Load 메서드에서.
일부 상황에서는 이 너무 늦게 일반 컨트롤 라이브러리를 초기화할 수 있습니다. 따라서 컨트롤의 InitInstance이 이 호출을 추가하는 것이 좋습니다.

현재 상태

이것은 의도적으로 설계된 동작입니다.

추가 정보

문제를 재현하기 위한 단계

  1. Visual C++ MFC ActiveX 컨트롤 마법사를 사용하여 기본 ActiveX 컨트롤을 만듭니다.
  2. 창 클래스의 하위 클래스로 (3단계 중 2단계 Visual C++ 6.0 응용 프로그램), 응용 프로그램 제어 설정 구역에서 다음 중 하나를 선택합니다: msctls_hotkey32, msctls_progress32, msctls_statusbar32, msctls_trackbar32, msctls_updown32, SysAnimate32, SysHeader32, SysListView32, SysTabControl32 또는 SysTreeView32.
  3. 컨트롤을 빌드하십시오.
  4. Microsoft Visual Basic 6.0 열고 새 표준 EXE 프로젝트를 만듭니다.
  5. 프로젝트 메뉴에서 구성 을 클릭하고 Microsoft Visual C++ 사용하여 방금 만든 컨트롤을 선택하십시오.
  6. 이 컨트롤을 선택하고 폼의 그리기 창.
  7. 파일 메뉴에서 만들기 Project.exe 를 클릭한 exe 빌드하십시오.
  8. Windows 탐색기와 가서 이 실행 파일을 실행하십시오.

속성

기술 자료: 223152 - 마지막 검토: 2006년 11월 21일 화요일 - 수정: 3.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Foundation Class Library 4.2?을(를) 다음과 함께 사용했을 때
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 서비스 팩 5
    • Microsoft Visual Basic 5.0 Learning Edition
    • Microsoft Visual Basic 6.0 Learning Edition
    • Microsoft Visual Basic 5.0 Professional Edition
    • Microsoft Visual Basic 6.0 Professional Edition
    • Microsoft Visual Basic 5.0 Enterprise Edition
    • Microsoft Visual Basic Enterprise Edition for Windows 6.0
키워드:?
kbmt kberrmsg kbtshoot kbcmnctrls kbctrl kbprb KB223152 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com