刚接触COM,有问题请教各位大虾:
我写了一个支持MFC的进程内COM组件程序
现在想在客户程序调用组件程序时,把客户程序中的一些MFC对象指针传递到组件程序中作为类的数据成员(也是一个MFC类对象指针)
应该用什么数据类型呢?传递资源MFC类对象(如CWnd)和普通类对象的指针时,是否有什么区别?
我写了一个支持MFC的进程内COM组件程序
现在想在客户程序调用组件程序时,把客户程序中的一些MFC对象指针传递到组件程序中作为类的数据成员(也是一个MFC类对象指针)
应该用什么数据类型呢?传递资源MFC类对象(如CWnd)和普通类对象的指针时,是否有什么区别?
回 答:可以实现
我的观点:得不偿失实现方法:
1.利用MFC提供的序列化,这方面我就不多说
codeguru,codeproject上有同一篇文章,你可以自己搜搜,看看
2.利用IStream,在客户端将你的类序列化,然后在组件里反序列化总结:但无论那种方式,传递的数据都是2进制,直接传递MFC class ,IDL是不答应的补充:如果是一般的CLASS,就容易多了(多少模仿于“接口着色”)
简单说明:将你的类的函数都改为纯需函数,也就是定义一个纯需基类(其实就是COM的接口),然后你在派生并实现它(在组件里),你的客户端和组件的交互都是通过这个纯需基类
直接传递一个void*(或者更绝点:DWORD),然后用它的那边再转换对应对象的指针就ok了呀。
http://blog.csdn.net/loveghb/archive/2005/12/23/560209.aspx
去看我的BLOG,看不懂别来找我
;)