![]() |
1
3
您所显示的代码中没有与COM相关的内容。LoadLibrary不是特定于线程的,因此一旦拥有了lib的句柄,就可以从所有线程中重用它。这同样适用于指向傻瓜方法的指针。 不过,在“傻瓜”里面肯定有一些特定的东西。另外,这里不清楚的是foo实例的生存期控制是什么。 从你提到COM的事实和你所看到的古怪行为来看,我有一种潜移默化的怀疑,即foo实际上是一个COM对象的vtable的内存映射,而傻瓜则是dllgetclassobject或另一个创建COM对象的工厂方法。-) 在任何情况下,对foo实例变为无效的最可能解释是,它被引用计数,dosomething调用addref()/release()导致它自我销毁。 为了准确地指出正在发生的事情,您必须提供一些关于傻瓜做什么以及为什么您认为您的代码与COM相关的更多信息。 |
![]() |
2
2
不管怎样,线程1正在调用
如果这是问题所在,可以将线程1更改为不释放库。
或者,您可以让第二个线程也调用
|
![]() |
3
0
价值
|
![]() |
Milan · 在Java中加载远程库 7 年前 |
![]() |
aquila · 加载库中的对象实例应该由库删除还是从客户端代码中删除? 11 年前 |
![]() |
jiten · vc++应用程序按序号调用vc++dll 13 年前 |