我有一堆对象继承了从idl文件生成的抽象接口。使用这些接口的每个对象都包含相同的文件interfaces.h,其中包含映射到idl接口的所有c ++生成的抽象类。
每次我将任何内容更改为interfaces.idl时,每个依赖于此的类都必须重建,因为interfaces.h会发生变化。是否有一个标志或某事告诉midl在自己的.h?
中生成每个抽象类答案 0 :(得分:1)
我能想到的唯一方法是将每个接口放在自己的IDL文件中,或者根据变化率将它们分成多个IDL。
然后将(或者它是#import - 我忘了)这些接口IDL放入主库IDL中,如果需要,它将生成类型库。
答案 1 :(得分:1)
以下是有关如何组织idl以生成单独的.h文件和单个typelib的示例。正确的指令是导入的。
<强> main.idl 强>
import "oaidl.idl";
import "ocidl.idl";
import "frag1.idl";
import "frag2.idl";
[
uuid(1BECE2AF-2792-49b9-B133-BBC89C850D6F),
version(1.0),
helpstring("Bibliothèque de types")
]
library Library
{
importlib("stdole2.tlb");
interface IFrag1;
interface IFrag2;
}
<强> frag1.idl 强>
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(9AEB517B-48B9-4628-8DD3-4A0BA8D39BEF),
dual,
nonextensible,
helpstring("Interface IFrag1"),
pointer_default(unique)
]
interface IFrag1 : IDispatch {
HRESULT frag1();
};
<强> frag2.idl 强>
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(D60835D4-E1B1-40fb-B583-A75373EF15BE),
dual,
nonextensible,
helpstring("Interface IFrag2"),
pointer_default(unique)
]
interface IFrag2 : IDispatch {
HRESULT frag2();
};