Vista 64 비트의 Winforms 창에서의 MFC Active-X 컨트롤; "등록되지 않은 클래스 예외"
-
05-07-2019 - |
문제
WinForms 창에서 호스팅 된 ActiveX 컨트롤에서 키 처리를위한 또 다른 SO SO 포스터 제안을 확인하려고 시도하면서 Bare-Bones MFC ActiveX 컨트롤을 만들어 Windows 형태에 배치했습니다. 설계 시간에는 제어가 문제없이 나타났습니다.
애플리케이션을 실행할 때는 "등록되지 않은 예외"가 두려운 것입니다. 대화 상자가 나타납니다.
두 프로젝트 모두 VS 2008에 있습니다. WinForms 앱은 .NET 3.5 프레임 워크 응용 프로그램입니다.
Explorer (두 경우 모두 고상한 특권)에서 디버거를 실행하려고 시도했지만 아무것도 작동하지 않았습니다. 심지어 64 비트 및 32 비트 regsvr32 실행 파이브로 OCX를 수동으로 등록했습니다.
이것은 내가 이것을 기대하지 않기 때문에 당황했다 ~ 아니다 운영. 문제없이 직장에서 비슷한 실험 (32 비트 Windows XP Box)을 수행했습니다.
내 VS 구성은 다음과 같습니다.
- Microsoft Visual Studio 2008
- 버전 9.0.30729.1 sp
- Microsoft .net 프레임 워크
버전 3.5 SP1
가장 혼란스러운 비트는 ActiveX 컨트롤이 설계 시간에 나타나는 것 같습니다. 모든 대답, 제안 또는 생각은 감사 할 것입니다.
해결책
.NET 호스트의 출력을 "모든 플랫폼"대신 X86으로 변경해야했습니다. 이는 응용 프로그램이 ActiveX 컨트롤이 컴파일되지 않은 x64에 JUTED가 있기 때문에 필요합니다. 오! ActiveX 호스트 프로젝트로 변경 한 후 앱은 제대로 실행되었습니다.
제휴하지 않습니다 StackOverflow