一个非com环境下的生命周期问题
类A 有个 成员,它是类B的指针
A{
A(B* pB1){pB = pB1;}
B* pB;
}
如果下面一段代码
B* pB = new B();
A oA = A(pB);
delete pB;
最后1句结束后,oA里的pB指向无效的地址。我的疑问时在非com环境下,怎么维护A和他的成员 B指针之间的关系,保证A里的B指针指向始终有效,在com环境下,可以用引用计数达到目的,难道在非com环境下,一个类去hold另外一个类的指针不是很危险?
A{
A(B* pB1){pB = pB1;}
B* pB;
}
如果下面一段代码
B* pB = new B();
A oA = A(pB);
delete pB;
最后1句结束后,oA里的pB指向无效的地址。我的疑问时在非com环境下,怎么维护A和他的成员 B指针之间的关系,保证A里的B指针指向始终有效,在com环境下,可以用引用计数达到目的,难道在非com环境下,一个类去hold另外一个类的指针不是很危险?
...全文
相关推荐
一个多线程的COM程序
**生命周期管理** 在多线程环境下,COM对象的创建、引用计数和释放需要特别注意。通常,对象在创建时进入其所属公寓,当引用计数为零时销毁。
将.net对象暴露给COM
**运行时调用**:在运行时,.NET 运行时环境(CLR)通过 RCW (Runtime Callable Wrapper) 来处理 COM 对象的生命周期管理、类型转换等问题,并通过 Interop
com通信程序-自己编的
COM通信程序是计算机编程中的一个重要概念,特别是在Windows操作系统环境下,用于实现不同软件组件之间的交互。
COM 技术内幕
线程模型定义了组件如何处理多线程环境下的并发调用,而marshaling则处理对象在不同进程或不同机器间的通信问题。书中详细介绍了COM的注册和激活过程,这是COM对象能够在系统中被识别和使用的前提。
PICMG_COM_0R3_0。COMe 电子版非扫描版
PICMG_COM_0R3_0是这个标准下的一个具体规范,代表着一种特定的COMe模块设计。在这个电子版非扫描版的文档中,我们很可能会详细了解到关于这个规格的详细信息。


