当你开发一个组件时,通常接口是从IDispatch接口继承。从这个接口继承使得你的组件可以支持类似脚本一样的语言。一般当接口较多时,我们并 不使用向导来生成IDL文件,而是直接手写IDL文件。
写IDL文件必须特别注意,如果接口A从接口B继承,那么两个接口中不应有相同的属性或者方法。虽然,写了相同的属性或者方法编译器不能提示,以后的使用中会有很大的隐患。作者曾出现过这种差错。
我们的项目中多数工程使用的是C++语言开发,只有少数模块使用C#开发。不巧的是单元测试工程也是用C++开发,由于C++使用的是IDL生成的头文件,因此即便有父子接口中都有相同的属性或者方法,C++也可以照样运行。但是C#不能处理,导致错误。而且这种问题也不易发现。