0
我有一堆ATL簡單對象(= 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
屬性應爲每個組件類自動生成。但是,我的註冊表中沒有任何內容。在其他情況下,DLL可以在每個編譯中完全正常註冊,並且可以從COM客戶端使用,而不會出現任何問題
怎麼會發生progid
不會自動生成?
這是ATL簡單對象嚮導中的陷阱。你輸入「短名稱」,所有的字段都會自動填入,沒有人介意默認值。除了一個,埋在右下角。對。 –