2011-03-31 5 views
1

1.1 VB.NET 코드에서 interoped COM 어셈블리를 사용하고 있는데 클래스의 속성을 설정하려고하면 "Query xterface for Interface xxx failed"메시지와 함께 INvalidCastException 오류가 발생합니다. . 또한 아무것도 반환에게이 유효 .NET 어셈블리 아니라 오류를 일하지 ..에 regsvr32 및 RegAsm을 방법을 사용하여 COM 파일을 등록하려고 ... 나에게 전문가인터페이스에 대한 queryinterface가 실패했습니다.

나는 오류 스크린 샷을 첨부

http://www.filefactory.com/file/ca7a55e/n/error.jpg

.. 상호 운용성을 도와주세요. peachwserver.dll은 com 객체입니다. Smtpmailer는 프로젝트입니다 ... peachtreeloginsingleton은 com에서 로그인 클래스를 상속하는 클래스 이름입니다.

답변

1

서버가 등록되지 않은 경우이 예외를 얻을 수 없습니다. 등록 문제가 있다고 생각되면 구성 요소 공급 업체 나 작성자에게 문의하여 올바른 절차가 어떻게 생겼는지 확인하십시오. 그것을 처리하는 설치 프로그램이 일반적입니다.

interop 라이브러리를 만드는 데 사용한 형식 라이브러리가 설치된 COM 서버의 실제 버전과 일치하지 않으면 QueryInterface가 실패합니다. DLL 지옥의 전형적인 경우입니다. 코너 케이스가 스레드에서 서버를 사용하려고합니다. 그 서버를 등록하려면 프록시/스텁이 필요합니다. 어느 것이 일반적으로 사용할 수 없습니다. 유일한 해결 방법은 개체가 만들어진 스레드의 메서드를 호출하는 것입니다. 이 시나리오 역시 구성 요소 공급 업체와 함께 가장 잘 검증됩니다.

+0

안녕하십니까, 약간의 세부 사항을 업데이트했습니다. – Baga

+0

@peter 일부 세부 사항을 업데이트했습니다. – Baga

+0

유형 라이브러리를 찾을 수 없습니다. 지원을 위해 공급 업체에 문의하십시오. –

관련 문제