在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,如需转载请自行联系原作者



相关文章
|
Windows
【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )(三)
【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )(三)
216 0
【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )(三)
|
Windows
【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )(二)
【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )(二)
163 0
【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )(二)
|
Windows
【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )(一)
【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )(一)
200 0
【Windows 逆向】OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )(一)
|
UED Windows
【Windows 逆向】OD 调试器工具 ( OD 工具简介 | OD 工具与 CE 工具对比 )
【Windows 逆向】OD 调试器工具 ( OD 工具简介 | OD 工具与 CE 工具对比 )
1043 0
【Windows 逆向】OD 调试器工具 ( OD 工具简介 | OD 工具与 CE 工具对比 )
|
安全 数据挖掘 定位技术
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 尝试进行瞬移操作 | 尝试查找飞天漏洞 )
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 尝试进行瞬移操作 | 尝试查找飞天漏洞 )
392 0
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 尝试进行瞬移操作 | 尝试查找飞天漏洞 )
|
数据挖掘 Windows
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 人物数据内存结构 | 人物三维坐标数据分析 )
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 人物数据内存结构 | 人物三维坐标数据分析 )
447 0
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 人物数据内存结构 | 人物三维坐标数据分析 )
|
Windows
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 遍历查找后坐力数据 | 尝试修改后坐力数据 )
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 遍历查找后坐力数据 | 尝试修改后坐力数据 )
352 0
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 遍历查找后坐力数据 | 尝试修改后坐力数据 )
|
Windows
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )(三)
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )(三)
154 0
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )(三)
|
Windows
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )(二)
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )(二)
234 0
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )(二)
|
Windows
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )(一)
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )(一)
315 0
【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 从内存结构中根据寻址路径查找子弹数据的内存地址 )(一)