如何得到一个已经注册的DLL的版本号

lixlin 2006-05-30 11:02:51

知道一个DLL已经在机器上成功注册。
现在想只通过DLL的名字,例如XX.dll就得到其版本号和文件路径。
不知道有没有现成的API函数可以使用呢?
(比如通过注册表里面的注册信息能不能查出来呢)

在网上查了一下,都是使用GetFileVersionInfo,
不过这个函数是必须已知该DLL的绝对路径啊,如果不知道的话,
岂不是就查不出来了?
...全文
268 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pripor 2006-05-31
  • 打赏
  • 举报
回复
GetFileName
GetFileVersionInfo
hamimelon 2006-05-31
  • 打赏
  • 举报
回复
先GetModuleFileName获取路径
然后GetFileVersionInfo
taianmonkey 2006-05-31
  • 打赏
  • 举报
回复
示例代码:
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,dwId);

if(hSnapShot == NULL)
return;

MODULEENTRY32 me = {sizeof(me)};

BOOL bFound = FALSE;
BOOL bSuccess = Module32First(hSnapShot,&me);
CString strPath,strExt,strText;
int iCount = 0;
for(;bSuccess;bSuccess = Module32Next(hSnapShot,&me))
{
strPath = me.szExePath;

strExt = strPath.Right(4);

if(!lstrcmpi(strExt,_T(".dll")))
{
InsertListText(iCount++,m_strModuleList,_T(""),_T(""),strPath);
}
}
hamimelon 2006-05-31
  • 打赏
  • 举报
回复
先GetModuleFileName获取路径
然后GetFileVersionInfo
taianmonkey 2006-05-31
  • 打赏
  • 举报
回复
GetFileVersionInfo
DLL的路径很容易获取!
gao_ming77 2006-05-30
  • 打赏
  • 举报
回复
你loadlibrary(xxx.dll),如果能load上来,你再GetModuleFileName来得到全路径。这样应该可以吧。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧