解决方案 »

  1.   

    我试过将结构体定义在IDL。h里面但是会出现与规则dll里面重复定义情况 。不定义在提供接口时候不存在此类型。真是闹心
      

  2.   

    新建ATL COM工程,然后把dll代码导入。接口定义COM类型,内部转换为dll结构体类型
      

  3.   

    去下载redui的SDK包,把他的头文件拿出来,加上几个宏,然后自己添加IDL文件
    详细做法
    宏定义的极致发挥---让你的普通C++类轻松支持IDispatch自动化接口(二)
      

  4.   

    不在idl定义结构的话 。在接口中怎么返回我需要的结构啊?难道在定义一个接口专门用来存储结构??然后用接口分解出自己需要用到的数据?
      

  5.   


    我没有实现文件cpp只有头文件+lib dll,可以这样做吗?
      

  6.   

    Resource.h 是什么?是资源文件使用的那个resource.h吗?
    这个头文件是给其他人用的吗?我勒个擦
      

  7.   

    我看了下代码,你这个程序居然在结构体里面增加了CString成员,这样程序很危险的
    其实在COM组件中可以对外输出结构体的,方法如下:
    1.声明结构体
    typedef struct tagTagDriverAndIoAddressDefine
    {
    WCHAR A_DriverName[RDB_DRV_DRIVER_NAME_MAX_LEN+1];
    WCHAR A_IO_Address[RDB_DRV_IO_ADDRESS_NAME_MAX_LEN+1];
    }TagDriverAndIoAddressDefine;
    这里一定要用到typdef,我也不知道为什么。
    2.在你的接口函数中一定要有一个函数使用TagDriverAndIoAddressDefine作为函数参数