爲什麼我無法在idl文件中定義接口,然後讓CoClass在同一個文件的庫塊中派生它,當我從接口派生所述接口時我已經在另一個Proxy Server項目中定義了?從同一個文件中定義的接口派生的MIDL CoClass
[
object,
uuid(00000000-0000-0000-0000-000000000000),
pointer_default(unique)
] interface IMyInterfaceB: IMyInterfaceA
{
[id(1), helpstring("")]
HRESULT NewMethod();
}
[
uuid(10000000-0000-0000-0000-000000000000),
helpstring("Type Library 1.00"),
version(1.00)
]
library MyLibrary
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(20000000-0000-0000-0000-000000000001),
helpstring("My Class")
]
coclass CMyClass
{
interface IMyInterfaceA;
//interface IMyInterfaceB; /* error when I remove rem */
};
}
1> MIDL \的oleaut32.dll:錯誤MIDL2020:錯誤生成類型庫:佈局失敗:IMyInterfaceB(0x800288C6
沒有repro。 IMyInterfaceA聲明丟失,因此難以重新創建錯誤。 [source]屬性幾乎肯定是錯誤的,只能將它用於生成事件的調度接口。如果有意的話,你需要聲明其中的一個[默認]。不要選擇你自己的guid,使用guidgen.exe –
@Hans Passant上面的代碼是通用垃圾。 。 。我不選擇GUID。 。 。 。我將刪除[源代碼]並意識到[源代碼,默認]。 ..我分開代理和對象,我發現我仍然得到錯誤,當我提到從庫中的IUnknown以外的其他接口:/ –
實際上重現問題的郵政編碼。 –