glen_dai 发表于 2008-8-18 16:25:22

ACE_Singleton在dll跟exe中两个不同实例的问题

关于ace_singleton的问题,
一个dll中声明了这样一个单体:typedef ACE_Singleton<NetProcessor, ACE_Null_Mutex> NetProcessorSingleton;
dll中用的NetProcessorSingleton::instance() 跟exe中用的NetProcessorSingleton::instance()是两个不同的实例。
这个怎么解决呢

wishel 发表于 2008-8-18 20:45:28

把exe中的去掉,dll中的改成ACE_Unmanaged_Singleton。
这样在用service configurator替换不同的dll时,可以有不同的实例。

winston 发表于 2008-8-19 15:04:41

wishel正解。楼主要读书哦,书上写的一清二楚。

SkyThinker 发表于 2008-9-7 00:16:12

我看了ace的三本书,好像没看过这方面的内容,你们是看哪些书?

winston 发表于 2008-9-8 13:13:58

书上有的。内容太多,需要经常翻阅,否则一些细节内容,很快就忘记了。

FowlerXP 发表于 2010-3-10 17:06:14

楼上的都答非所问
楼主建议你去ACE的源码中搜索:ACE_SINGLETON_DECLARE.
楼主用DLL,肯定知道dllimport dllexport吧
这个typedef的模板类所实例化的类也要dllexport.
另外参见:
http://groups.google.com/group/comp.soft-sys.ace/browse_thread/thread/ca5cca2ee22eb866/31f1ee30bfc5fcf4?lnk=raot

wishel 发表于 2010-3-11 10:03:55

ls的id比较有趣
是fowler的fans么?
页: [1]
查看完整版本: ACE_Singleton在dll跟exe中两个不同实例的问题