如何得到一个已经注册的DLL的版本号 知道一个DLL已经在机器上成功注册。现在想只通过DLL的名字,例如XX.dll就得到其版本号和文件路径。不知道有没有现成的API函数可以使用呢?(比如通过注册表里面的注册信息能不能查出来呢)在网上查了一下,都是使用GetFileVersionInfo,不过这个函数是必须已知该DLL的绝对路径啊,如果不知道的话,岂不是就查不出来了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你loadlibrary(xxx.dll),如果能load上来,你再GetModuleFileName来得到全路径。这样应该可以吧。 GetFileVersionInfoDLL的路径很容易获取! 先GetModuleFileName获取路径然后GetFileVersionInfo 示例代码: 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); } } 先GetModuleFileName获取路径然后GetFileVersionInfo VC/MFC怎么用令牌桶控制本机网速(客户端角色) 菜单问题,MainFrame窗口建立后的第一个消息是什么消息? 如何在子对话框中关闭主对话框? 对方将收到多少个字节的数据? 小弟对于下面的结构有点不清除,请帮我解释一下,解决了马上给分!!!! 嵌套结构赋初值为什么不能用变量? 帮忙解释一个typedef语句 打开文档的问题? 为什么使用CEdit类的LineLength()得到的值完全相同? 用cvConvertScale将图像进行归一化做处理遇到的问题 [ 高分求教:关于CEditView中修改字体,颜色 已取得指向位图存储象素数据的指针,怎样对占3字节的象素进行操作?
DLL的路径很容易获取!
然后GetFileVersionInfo
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);
}
}
然后GetFileVersionInfo