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;
};
}
MSDN는 progid
속성이 자동으로 각 coclass에 생성되어야한다고 말할 것 같다. 그러나 내 레지스트리에는 아무 것도 없습니다. 그렇지 않으면 DLL이 각 컴파일시 완전히 정상적으로 등록되며 아무 문제없이 COM 클라이언트에서 사용할 수 있습니다.
progid
이 자동으로 생성되지 않는 이유는 무엇입니까?
ATL 단순 개체 마법사의 함정입니다. "짧은 이름"을 입력하면 모든 필드가 자동으로 채워집니다. 아무도 기본값을 신경 쓰지 않습니다. 하나를 제외하고, 오른쪽 아래 구석에 묻혔습니다. 예. –