yoogera 发表于 2010-9-30 18:56:32

请问如何能获取到当前正在运行的动态库的名称呢

我想用ACE_DLL_Singleton_T来管理我当前的DLL中断一些单件类,但是他要提供一个DLL的name给他才能在这个DLL卸载的时候进行删除。
请问有办法能得到当前运行的DLL的名称吗?如果要硬编码在代码里面好像不好吧,DLL在加载前都是能改名称的。

yoogera 发表于 2010-10-7 21:37:57

顶一下吧,看来是没有办法获取了

winston 发表于 2010-10-8 10:09:33

肯定是有办法的。那么多插件系统怎么做的? 比如你可以通过接口,让DLL自己报告名字。

yoogera 发表于 2010-10-12 23:14:47

能不能具体说一下啊,我现在代码就是要获取当前DLL的名称。
其实就是Service/Config模式中,在finit调用的时候,将和他相关的所有单件对象删除掉(用ACE_DLL_Singleton_T)。
而且还有一个问题就是Service/Config中,如果加载dll像下面这样写:
dynamic Service_Name Service_Object * DLLName:_make_Service_Server()
则Service/Config框架中卸载ACE_DLL_Singleton_T相关的单件对象的时候使用的Dll名称就是DLLName,但是如果像下面这样写:
dynamic Service_Name Service_Object * ./DLLName:_make_Service_Server()
那框架卸载时用的Dll名称就是./DLLName
是否这是框架的一个问题,如果是这样的话,那我想那个ACE_DLL_Singleton_T基本上就没有什么用了。谁也不会知道Dll的执行路径和名称。
页: [1]
查看完整版本: 请问如何能获取到当前正在运行的动态库的名称呢