2012-01-04 2 views
2

ocx 파일이 있는데 Windows 서비스에서 사용하고 싶습니다. aximp 도구를 사용하여 ocx에서 dll을 만들었지 만 dll이 작동하지 않으면 예외가 발생합니다.Windows 서비스에서 ocx 파일 사용

+0

도움이 필요하면 더 많은 정보를 제공해야합니다. 어떤 예외이며 예외를 제공하는 코드는 무엇입니까? – shf301

+0

OCX를 서비스로 이동해도 OCX 요구 사항은 변경되지 않습니다. 예를 들어 스레드 아파트가 STA 인 경우 OCX 용 창 메시지를 펌프해야합니다. –

답변

1

C#의 Windows 서비스에서 ocx를 사용하면 COM을 다른 것과 같이 사용해야합니다. ocx를 com 서버로 등록하고 프로젝트 환경 설정에서 ocx에 대한 참조를 추가하기 만하면됩니다.

+0

ocx 파일을 내 64 비트 우승 7에 – Bertan

+0

으로 등록했습니다. 내 64 비트에 ocx 파일을 등록하고 regsvr32 fk524pxn.ocx 명령으로 7 운영 체제를 얻었습니다. 디버깅을 위해 winform (x86) 인 다른 프로젝트를 만든 다음 참조에서 winform 프로젝트로 해당 ocx 파일을 가져옵니다. 내가 디버깅 할 때 "치명적인 오류 (Exception from HRESULT : 0x8000FFFF (E_UNEXPECTED))"라는 COM 예외가 발생합니다. 내 winform 프로젝트를 AnyCPU에서 propeties로 변환하면 "다음 오류로 인해 CLSID {5AB97943-73D7-4385-BF44-5E4FFCFEBE8C}의 구성 요소에 대한 COM 클래스 팩터 리를 가져 오는 데 실패했습니다 : 80040154", COM 예외가 발생합니다. – Bertan

+0

등록되지 않았거나 windows/system32 폴더에서 찾을 수없는 다른 dll을 참조하는 ocx 또는 dll에서이 문제가 발생할 수 있습니다. Dependency Walker (http://www.dependencywalker.com/)를 사용하여 해당 시나리오를 디버깅하십시오. – Motes

관련 문제