在com如何进行运算符重载

hongkun18 2011-03-24 05:06:19
用c++写com 比如 IA;
在c#调用如下:
IA a = new A();
a.X = 10;

IA b = new A();
b = a; //这时候b.X = 10 ;正常;

b.X= 20;
这时a.X 也等于20,可见浅拷贝。

我想在com中添加 = 的运算符重载 来实现 b = a的深拷贝。
但怎么不进入断点:

IoperateC* operator == ( IoperateC *c)
{
::CoInitialize(NULL);
IoperateC *p = NULL;
HRESULT hr = CoCreateInstance(CLSID_operateC,NULL,CLSCTX_INPROC_SERVER,IID_IoperateC,(LPVOID*)&p);
LONG x = 0;
c->get_X(&x);
p->put_X(x);
return p;
}



请问。
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wshcdr 2011-03-29
  • 打赏
  • 举报
回复
这个靠C++自己来做和COM没关系
gw_net 2011-03-29
  • 打赏
  • 举报
回复
#import tlb之后就可以使用智能接口指针了,很多例子的
真相重于对错 2011-03-25
  • 打赏
  • 举报
回复
com 是跨语言二进制复用技术,类似于c++ 本身的operator = 无法实现
你可以通过传出接口方式来实现深拷贝方式
hongkun18 2011-03-25
  • 打赏
  • 举报
回复
能详细点吗?谢谢.
gw_net 2011-03-24
  • 打赏
  • 举报
回复
COM用智能接口指针传递

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧