如果在dll中使用了ace_singleton,则可能会造成内存泄露;
原因是ace_singleton使用ACE_Object_Manager来完成垃圾回收工作,而ACE_Object_Manager在dll中,虽然使用了ACE::ini却不见得能正常工作的; 可以用ACE_Unmanaged_Singleton代替,因为有close方法来清空对象。或者干脆自己来简单写一个单件类。
本文探讨了在DLL中使用ACE_Singleton可能导致的内存泄漏问题。原因在于ACE_Singleton依赖于ACE_Object_Manager进行垃圾回收,而在DLL环境下该机制可能无法正常工作。文章建议采用ACE_Unmanaged_Singleton替代,因其提供了close方法来确保对象被正确清理。
如果在dll中使用了ace_singleton,则可能会造成内存泄露;
原因是ace_singleton使用ACE_Object_Manager来完成垃圾回收工作,而ACE_Object_Manager在dll中,虽然使用了ACE::ini却不见得能正常工作的; 可以用ACE_Unmanaged_Singleton代替,因为有close方法来清空对象。或者干脆自己来简单写一个单件类。

被折叠的 条评论
为什么被折叠?
