2016-08-18 2 views
0

나는 ATL Simple Objects (= COM 개체)를 많이 가지고있는 ATL DLL을 가지고 있습니다. 모두 마법사 생성입니다.이러한 ATL 단순 개체에 대해 ProgID가 생성되지 않는 이유는 무엇입니까?

IDL 파일은 이와 같은 인터페이스의 많은 및 라이브러리 섹션을 포함

[ 
    object, 
    uuid(00000000-0000-0000-0000-000000000000), 
    dual, 
    nonextensible, 
    pointer_default(unique) 
] 
interface IFoo : IDispatch{ 
    [id(1)] HRESULT FooMethod(); 
}; 
[ 
    uuid(00000000-0000-0000-0000-000000000000), 
    version(1.0), 
] 
library MyLib 
{ 
    importlib("stdole2.tlb"); 
    [ 
     uuid(00000000-0000-0000-0000-000000000000) 
    ] 
    coclass Foo 
    { 
     [default] interface IFoo; 
    }; 
} 

MSDNprogid 속성이 자동으로 각 coclass에 생성되어야한다고 말할 것 같다. 그러나 내 레지스트리에는 아무 것도 없습니다. 그렇지 않으면 DLL이 각 컴파일시 완전히 정상적으로 등록되며 아무 문제없이 COM 클라이언트에서 사용할 수 있습니다.

progid이 자동으로 생성되지 않는 이유는 무엇입니까?

+1

ATL 단순 개체 마법사의 함정입니다. "짧은 이름"을 입력하면 모든 필드가 자동으로 채워집니다. 아무도 기본값을 신경 쓰지 않습니다. 하나를 제외하고, 오른쪽 아래 구석에 묻혔습니다. 예. –

답변

0

설명서를 잘못 읽은 것으로 보이며 IDL coclasses의 경우 ProgID가 자동으로 생성되지 않습니다. 너무 나빴어.

어쨌든 나중에 .rgs 파일에 추가하는 방법은 here입니다.

관련 문제