Computer >> 컴퓨터 >  >> 체계 >> Windows

Windows 10의 32비트 앱에 대한 CreateWindowEx 기능 문제

경우에 따라 새 버전으로 업그레이드한 후 Windows 10에서 CreateWindowEx를 호출할 때 충돌이나 기타 문제가 발생합니다. msctf.dll의 함수 일부 32비트 응용 프로그램에서 창을 만들 때. 이 게시물에서는 CreateWindowEx가 무엇인지 이해할 것입니다. 기능은 – 이 기능 오류의 가능한 원인을 탐색한 다음 문제를 완화하기 위한 권장 솔루션을 제공합니다.

CreateWindowEx 함수 이해

Windows 10의 32비트 앱에 대한 CreateWindowEx 기능 문제

Windows Forms 또는 WPF(Windows Presentation Foundation)를 사용하는 .NET 응용 프로그램을 비롯한 Windows 응용 프로그램은 CreateWindowExA 또는 CreateWindowExW 기능.

두 함수 모두 내부적으로 공통 USER32를 호출합니다. 호출에 지정된 창 스타일 및 핸들과 같은 일부 매개변수 유효성 검사를 수행하는 함수는 WS_EX_MDICHILD 확장 창 스타일이 지정되고 호출 스레드에 대한 현재 활성화 컨텍스트를 처리합니다. USER32 측에서 모든 것이 정상인 경우 CreateWindowEx 호출의 경우 CreateWindowEx의 커널 모드(WIN32K) 구현을 호출합니다.

CreateWindowEx는 새 창 개체를 만들려고 할 때 다음 작업을 수행합니다.

  • 새 창 개체에 대한 핸들 생성이 호출 프로세스에 대한 사용자 핸들 할당량 한도를 초과하는지 확인합니다.
  • 데스크톱의 힙에서 새 창 개체에 대한 메모리를 할당합니다.
  • 새 창 개체의 메모리를 초기화합니다.
  • 사용자 핸들 테이블에 새 창 개체에 대한 핸들을 생성합니다.

CreateWindowEx 실패의 원인

CreateWindowEx 함수 문제를 유발할 수 있는 일부 조건은 다음과 같습니다.

  • 지정한 창 클래스가 존재하지 않습니다.
  • 잘못된 창 스타일 또는 확장된 창 스타일 사용
  • 창 핸들 및 메뉴 핸들과 같은 잘못된 사용자 핸들 사용
  • 부모 창을 지정하지 않고 자식 창을 만들려고 합니다.
  • 하위 창 또는 소유 창을 만들려고 시도하고 지정된 상위/소유자가 호출 스레드와 다른 데스크톱에 속해 있습니다.
  • 하위 창이나 소유 창을 만들면 중첩 창 제한을 초과하게 됩니다.
  • 새 창 개체를 만들면 호출 프로세스의 핸들 할당량이 초과됩니다.
  • 데스크톱의 힙에 사용 가능한 힙이 부족하여 새 창 개체에 메모리를 할당할 수 없습니다.
  • 사용자 핸들 테이블에 사용 가능한 항목이 없습니다.

Windows 10의 32비트 앱에 대한 CreateWindowEx 기능 문제 수정

Microsoft는 CreateWindowEx 함수 문제에 대한 해결 방법을 제공했습니다.

이 문제를 해결하려면 Windows 10 설치를 이전 버전으로 롤백해야 합니다.

Windows 10의 롤백 옵션은 10일 동안 사용할 수 있습니다. (대부분의 경우) Windows 10 설치를 업그레이드한 후

이 작업은 개인 파일을 유지하지만 업그레이드 후에 설치된 응용 프로그램과 드라이버를 제거하고 설정 변경 사항도 되돌립니다.

롤백 옵션을 사용할 수 없는 경우 개인 파일을 백업한 다음 IT 지원, 헬프 데스크 또는 Microsoft 지원에 문의하여 기기를 이전 Window 10 버전으로 복원하는 데 도움을 받을 수 있습니다.

바로 그것입니다!

추신 :Microsoft는 해결 방법을 연구 중이며 Windows 10 차기 릴리스에서 업데이트를 제공할 예정입니다.

Windows 10의 32비트 앱에 대한 CreateWindowEx 기능 문제