实现获取软件自身的版本号
来源:互联网 发布:发帖软件破解版 编辑:程序博客网 时间:2024/05/21 06:26
//获取软件当前的版本
//该版本号是在资源文件中的../Version/VS_VERSION_INFO/FILEVERSION的值
CString CMyPro::GetCurProductVersion()
{
TCHAR cPath[400] = _T(""),szVersionBuffer[400]= _T("");
DWORD dwHandle,InfoSize;
CString strVersion;
::GetModuleFileName(NULL,cPath,sizeof(cPath)); //首先获得版本信息资源的长度
InfoSize = GetFileVersionInfoSize(cPath,&dwHandle); //将版本信息资源读入缓冲区
if(InfoSize==0) return _T("None VerSion Supprot");
TCHAR *InfoBuf = new TCHAR[InfoSize];
GetFileVersionInfo(cPath,0,InfoSize,InfoBuf); //获得生成文件使用的代码页及文件版本
unsigned int cbTranslate = 0;
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
VerQueryValue(InfoBuf, TEXT("//VarFileInfo//Translation"),(LPVOID*)&lpTranslate,&cbTranslate);
// Read the file description for each language and code page.
for( int i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
TCHAR SubBlock[400];
wsprintf( SubBlock,
TEXT("//StringFileInfo//%04x%04x//FileVersion"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
void *lpBuffer=NULL;
unsigned int dwBytes=0;
VerQueryValue(InfoBuf,
SubBlock,
&lpBuffer,
&dwBytes);
CString strTemp=(TCHAR *)lpBuffer;
strVersion+=strTemp;
}
strVersion.Replace(_T(","),_T("."));
strVersion.Replace(_T(" "),NULL);
return strVersion;
}
在Project->Settings->Linking 的Object/library modules 内输入 version.lib这个库。
当然头文件需加上#include <tchar.h>
和 #include <windows.h>
- 实现获取软件自身的版本号
- VC中获取软件自身的版本号
- VS2010获取程序自身的版本号
- mfc获取自身版本号
- mfc获取自身版本号
- 获取软件的版本号
- Android基础:教你如何获取软件自身版本号和Android系统版本号
- 获取软件版本号的步骤
- 得到程序自身的版本号
- Delphi2010如何获取程序内部自身版本号?
- CnCrypt代码 之 获取程序自身版本号
- VC获得程序自身的版本号
- Android获取系统版本号、软件版本号
- android获取程序软件版本号
- 软件版本号的研究
- 软件版本号的详解
- 软件版本号的详解
- 软件版本号的命名
- Table Scan, Index Scan, Index Seek
- Objective-C 的可变字符串 NSMutableString
- Fancybox
- 关于NTDLL.DLL 异常错误问题
- J2EE框架(TomcatStrutsHibernateSpringAjax(dojo))开发步骤
- 实现获取软件自身的版本号
- VC6 在Vista Win7 下提高权限问题
- 解决NOD32的误报问题
- vc++启动和停止服务
- 处理键盘组合键消息
- 获取系统版本 XP ,VIS win7 等
- VC/MFC 设置程序与文件关联与双击文件获取文件路径
- Android对用五大布局
- 如何在程序中创建快捷方式