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

解决方案 »

  1.   

    你loadlibrary(xxx.dll),如果能load上来,你再GetModuleFileName来得到全路径。这样应该可以吧。
      

  2.   

    GetFileVersionInfo
    DLL的路径很容易获取!
      

  3.   

    先GetModuleFileName获取路径
    然后GetFileVersionInfo
      

  4.   

    示例代码:
    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);
    }
    }
      

  5.   

    先GetModuleFileName获取路径
    然后GetFileVersionInfo