0
|
LeopardSkinPillBoxHat · 技术社区 · 15 年前 |
![]() |
1
2
与其实现自己的全局单例,不如使用 IGlobalInterfaceTable 而是接口。它是由操作系统在进程级别提供的单例。任何DLL都可以将其COM对象放入表中,其他DLL可以在需要时检索它们。您只需要实现一种方法,让DLL可以相互交换表的dword cookie。 |
![]() |
2
2
您将返回对智能指针的引用,这可能不会增加引用计数。对不起,我会查一下,但这里很晚。这是我的预感,它符合您所描述的——查看ccompter的复制构造函数。 希望能有所帮助, K |
![]() |
3
2
在黑暗中疯狂刺伤:有没有可能
|
![]() |
4
1
我怀疑问题出在你对ccomptr类的复制/分配语义的理解上;我对ccomptr不是特别熟悉,但根据我的经验,智能指针的工作方式往往与你期望的不一样。首先,您应该阅读ccompter的文档,并确保您了解它的工作原理(查看源代码也不会造成伤害)。您还可以尝试在ccomptr的addRef()和release()成员中放置一些断点,以查看在调用getMyoTherObject()期间和之后会发生什么,特别是当您临时存储返回值并且它超出范围时。 |
![]() |
5
0
听起来像
为清晰起见而编辑。
编辑
只是做了一个快速测试,使用函数返回引用时没有遇到任何问题
但我想扩展一下如果
要避免这种情况,您需要像这样构造您的程序:
|
![]() |
darkalbo · 作为参数生存期传递的Java内联对象 8 年前 |