找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4218|回复: 3

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

[复制链接]
发表于 2010-9-30 18:56:32 | 显示全部楼层 |阅读模式
我想用ACE_DLL_Singleton_T来管理我当前的DLL中断一些单件类,但是他要提供一个DLL的name给他才能在这个DLL卸载的时候进行删除。
请问有办法能得到当前运行的DLL的名称吗?如果要硬编码在代码里面好像不好吧,DLL在加载前都是能改名称的。
 楼主| 发表于 2010-10-7 21:37:57 | 显示全部楼层
顶一下吧,看来是没有办法获取了
发表于 2010-10-8 10:09:33 | 显示全部楼层
肯定是有办法的。那么多插件系统怎么做的? 比如你可以通过接口,让DLL自己报告名字。
 楼主| 发表于 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的执行路径和名称。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-18 20:10 , Processed in 0.015277 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表