COM组件如何避免结构体重复定义
是这样的:
假如我写了两个组件:组件A和组件B,都包含了一个自定义的结构体类型,如:
typedef struct POINT{
int x;
int y;
}POINT;
然后我利用import在客户端调用这两个组件的时候就会提示POINT重复定义。
我的组件是按照网上找的这个方法写的:
1) 从IUnknown继承的自定义接口
把数据结构直接传送给基于VTable接口的方法,只适用于由MIDL编译生成的proxy/
stub DLL调度的接口,不能用于Invoke();(参UserDefinedDataType(1))
a.在一个新的.h文件中定义自定义数据结构.
b.在.idl文件最前面加入这个.h文件,比如:
#include "MyStruct.h"
c.给从IUnknown派生的接口加入使用了自定义数据结构的方法。
d.在客户程序的stadafx.h最下面加入#import指令,如:
#import "..\test3.tlb" no_namespace
在生成的.tlh文件中,会自动包含了用户自定义数据结构的定义。
然后生成的两个.tlh文件中都有POINT的定义,就出现了重复定义的问题,我试过用条件编译的方法修改.tlh文件,但是当VC6.0再次加载.tlh文件的时候,会自动把我的条件编译语句去掉,所以条件编译的方法是行不通的。
请问,各位com高手,有什么好的办法可以避免重复定义。