在Windows Mobile和Wince(Windows Embedded CE)下进行Native C++开发,如何取出资源文件中的版本信息

简介:

在Windows Mobile和Wince(Windows Embedded CE)下开发的产品,有时候需要显示当前产品的版本信息。一般来说,版本信息是保存在资源文件里面的,例如下图:

 file-version-1

为了保持一致,所有版本信息应该都从资源文件读取,不应该另外硬编码(Hard code)。

下面讲述读取资源文件版本信息的方法:

1.在资源文件中新建一个版本信息项

file-version-2

 

2.根据需求修改版本信息

 file-version-1

 

3.增加取版本信息函数

CString CConfigDialog::GetVersionInfo(HMODULE hLib)
{
CString version;
TCHAR appFilePath[MAX_PATH];
memset(appFilePath, 0, sizeof(char) * MAX_PATH);
if (GetModuleFileName(hLib, appFilePath, MAX_PATH))
{
DWORD hand = 0;
DWORD verLen = GetFileVersionInfoSize(appFilePath,&hand);
if (0 < verLen)
{
TCHAR *verData = (TCHAR *)malloc(verLen);
if (verData)
{
if (GetFileVersionInfoW(appFilePath,hand,verLen,verData))
{
VS_FIXEDFILEINFO *verInfo;
unsigned bufLen;
if (VerQueryValueW(verData,_T("\\"),(LPVOID *)&verInfo,(PUINT)&bufLen))
{
TCHAR numbTxt[8];
memset(numbTxt,0,8);
// major
_itow(HIWORD(verInfo->dwFileVersionMS),numbTxt,10);
version = numbTxt;
version += _T(".");
// minor
_itow(LOWORD(verInfo->dwFileVersionMS),numbTxt,10);
version += numbTxt;
version += _T(".");
// build
_itow(HIWORD(verInfo->dwFileVersionLS),numbTxt,10);
version += numbTxt;
version += _T(".");
// revision
_itow(LOWORD(verInfo->dwFileVersionLS),numbTxt,10);
version += numbTxt;
}
}
free(verData);
}
}
}
return version;
}

 

4.取出版本信息

HINSTANCE hInst = (HINSTANCE)hModule;
GetVersionInfo(hInst);

完成了,效果如下图:

 file-version-3

 

最近一直做WTL的开发,写了不少这方面的总结,请看我的blog。



    本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2009/11/13/Windows-Mobile-WTL-Version.html,如需转载请自行联系原作者



相关文章
|
9月前
|
开发框架 安全 .NET
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
.NET Framework是Windows平台的开发框架,包含CLR和FCL,支持多种语言开发桌面、Web应用。常用版本有3.5、4.5.2、4.8.1,系统可同时安装多个版本,确保软件兼容运行。
2089 0
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
|
运维 Linux 虚拟化
VMware虚拟机安装教程,Windows下安装VMware虚拟机,附VMware下载,Windows各版本系统镜像下载
虚拟机技术允许一台物理机运行多个操作系统,提升资源利用率,节省成本。通过快照、克隆等功能,实现系统快速恢复与复制,提高运维效率。本文详细介绍VMware虚拟机的安装步骤、Windows镜像下载及系统安装激活流程,适合初学者快速入门。
13085 0
|
Windows
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
337 2
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
1108 16
|
Windows
windows版本 软件管理
本内容讨论了将程序生成为exe文件并放置在D盘的过程,强调这一操作不会自动完成,需要用户进行手动设置或使用特定工具来实现。这对于编程初学者了解程序编译与部署的限制很有帮助,明确了自动化的边界条件。
266 1
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
4407 0
|
Windows
Windows下版本控制器(SVN)- 配置版本库
Windows下版本控制器(SVN)- 配置版本库
194 0
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
953 64
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
1091 63