如何获知dll文件的版本号,谢谢。

suchangjun 2003-11-24 01:28:16
如何获知dll文件的版本号,这个dll文件和执行文件在同一目录内,只想把版本号读出,并显示出来。
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
topwork 2003-11-25
  • 打赏
  • 举报
回复
下面的代码获得自己程序的版本。
你把szBuf设置成你所要获得的dll文件的绝对路径即可。
#include "windows.h"
#include "stdio.h"
#pragma comment (lib , "Version.lib")
int main(int argc, char* argv[])
{
char szBuf[MAX_PATH] = {0};
GetModuleFileName(NULL , szBuf , sizeof(szBuf));
DWORD dwSize = GetFileVersionInfoSize(szBuf , NULL);
if(!dwSize)
{
printf("未找到资源段\n");
}
BYTE *pByte = new BYTE[dwSize];
GetFileVersionInfo(szBuf , NULL , dwSize , pByte);
PVOID lpBuffer = NULL;
unsigned dwBytes = 0;
char SubBlock[1024] = {0};
VerQueryValue(pByte, TEXT("\\"), (LPVOID*)&lpBuffer, &dwBytes);
VS_FIXEDFILEINFO v;
memcpy(&v , lpBuffer , sizeof(v));

printf("FileVersion=%d.%d.%d.%d\n" , v.dwFileVersionMS >> 16 , v.dwFileVersionMS & 0x00ff , v.dwFileVersionLS >> 16 , v.dwFileVersionLS & 0x00ff);
printf("ProductVersion=%d.%d.%d.%d\n" , v.dwProductVersionMS >> 16 , v.dwProductVersionMS & 0x00ff , v.dwProductVersionLS >> 16 , v.dwProductVersionLS & 0x00ff);
delete[] pByte;
return 0;
}
suchangjun 2003-11-25
  • 打赏
  • 举报
回复
我要的是详细的用法,以上的东西在msdn中都可以看到,我要的是例子。
fbmsf 2003-11-24
  • 打赏
  • 举报
回复
BOOL GetFileVersionInfo(

LPTSTR lptstrFilename, // pointer to filename string
DWORD dwHandle, // ignored
DWORD dwLen, // size of buffer
LPVOID lpData // pointer to buffer to receive file-version info.
);

楼主呀,你都知道很简单了,为什么不自己好好的看看喃?
suchangjun 2003-11-24
  • 打赏
  • 举报
回复
这么简单的题目都没有人能回答吗?
suchangjun 2003-11-24
  • 打赏
  • 举报
回复
我也知道是这几个函数,不过不知道具体如何用,例如dll文件名为"123.dll",在VC中希望得到它的版本信息,并在显示器上显示出来。
verybigbug 2003-11-24
  • 打赏
  • 举报
回复
GetFileVersionInfoSize 和 GetFileVersionInfo
suchangjun 2003-11-24
  • 打赏
  • 举报
回复
我想要的是在vc中获知dll文件版本,并把它在对话框的标题栏中显示出来。
luckyboy1979 2003-11-24
  • 打赏
  • 举报
回复
一般的dll文件的属性中(右键单击dll文件,选择属性),有一属性项为版本,在这里可以看到该dll文件的版本号。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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