2013-04-12 1 views
-1

VS 2010 클래스 라이브러리를 만들었습니다. Com 가시성을 위해 어셈블리를 표시했습니다. 강력한 키로 어셈블리 서명. 내 수업을 만들었고 내 진입 점 방법을 사용할 수 있도록했습니다.VS 2010 어셈블리의 COMVisible 클래스가 여전히 COM을 통해 보이지 않습니다.

라이브러리는 C#의 테스트 프로젝트에서 올바르게 작동합니다. C :

내가 통해, GAC에 클래스 라이브러리를 RegAsm을 \ 창 \ microsoft.net 프레임 워크 \ \ v4.0.30319 \ RegAsm을 Testdll.dll이/TLB : testdll.tlb/코드베이스

가 포함 TLB 파일 내 VB6 프로젝트에서 참조로. 나는 자원 '찾아보기'를 통해 그것을 찾을 수있다.

클래스를 인스턴스화하려고 할 때 ... 비어 있습니다. 공용 클래스를 통해 사용할 수 있어야하는 공용 메서드가 표시되지 않습니다. 내가 CreateObject를 통해 'testdll.testclass'을 호출하는 시도 또한

Dim objTest as testdll.testclass 
set objTest = new testdll.testclass 

objTest.testmethod <--- this 'testmethod' doesn't display in intellisense... nothing does. 

, 난에 대한 COM 가시성했던

지금 내가 가진 다른 프로젝트를 "ActiveX 구성 요소는 개체를 만들 수 없습니다"라는 오류를 얻을 수 차이를 비교해 보았지만 아무 것도 볼 수 없습니다. 왜 작동하지 않는지 나는 이해할 수 없다.

모든 단서 ??? 아주 많이.

+0

당신이 .TLB을 REGSVR32나요 :

이 링크는 주제에 대한 충분한 정보를 제공? 나는 인텔리 센스도 얻지 못한다. 그러나 나는 여전히 그 타입을 사용할 수있다. – ken

+0

hmmm ... 인터페이스를 추가해야합니까? 나는 다른 프로젝트에서 그렇게하지 않았다. 그리고 그것은 작동한다 ... 나는 그것에 관해 뭔가를 말하고있는 다른 기사를 읽고있다. – user1161137

+0

당신 regsvr32 tlb 수 없습니다 ... regasm 뭐하는거야? – user1161137

답변

1

당신이 정의한 인터페이스 중 하나를 사용하거나 [ClassInterface (ClassInterfaceType.AutoDual)] 을 사용하면 온라인에서 의견을 찾을 수 있습니다. 자동 검색을 사용하지 않음을 나타내지 만 귀하의 전체 사용을 라이브러리를 사용하면 '확인'할 수있는 것처럼 보입니다.

필자는 한 프로젝트에서 VB 프로젝트에서 볼 수있는 인터페이스가 필요없는 이유를 시뮬레이션/이해하는 데 모든 방법을 시도했습니다. 원래 프로젝트가 IDisposable Interface (C# 프로젝트에서 사용되는 유일한 인터페이스 인 com 만 사용 가능)를 구현했기 때문에 원래 그럴 가능성이 있다고 생각했지만 그 이유는 아닙니다. 어쨌든 다른 사람의 시간을 낭비하고 싶지 않습니다. 응답 주셔서 감사합니다. 이 http://anturcynhyrfus.blogspot.com/2011/03/creating-com-visible-c-component.html

관련 문제