.rc文件,其中包含用于exe文件详细信息的版本,说明等。

如何获得在代码内使用的值?例如,要获取ProductName

IDI_ICON1   ICON    DISCARDABLE "abc-logo.ico"

#if defined(UNDER_CE)
#include <winbase.h>
#else
#include <winver.h>
#endif VS_VERSION_INFO VERSIONINFO
FILEVERSION , , ,
PRODUCTVERSION , , ,
FILEFLAGSMASK 0x3fL
FILEFLAGS
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN BEGIN
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0404,
END
BLOCK "StringFileInfo"
BEGIN
BLOCK "040404b0"
BEGIN
VALUE "CompanyName", "Company A\0"
VALUE "FileDescription", "Software A\0"
VALUE "FileVersion", "1.0.0.0\0"
VALUE "InternalName", "SoftwareX\0"
VALUE "LegalCopyright", "Copyright (C) Software Inc. All Rights Reserved\0"
VALUE "OriginalFilename", "SoftwareA.exe\0"
VALUE "ProductName", "Software A\0"
VALUE "ProductVersion", "1.1.0.0\0"
END
END
END

需要使用GetFileVersionInfo()VerQueryValue()函数

例如:

TCHAR FileName[MAX_PATH];
GetModuleFileName(NULL, FileName, MAX_PATH); DWORD Handle;
DWORD Size = GetFileVersionInfoSize(FileName, &Handle); std::vector<BYTE> Data(Size);
GetFileVersionInfo(FileName, Handle, Size, Data.data()); LPTSTR ProductName;
UINT Len;
VerQueryValue(Data.data(), TEXT("\\StringFileInfo\\040404b0\\ProductName"), (LPVOID*) &ProductName, &Len); // use ProductName up to Len chars as needed... LPTSTR LegalCopyright;
VerQueryValue(Data.data(), TEXT("\\StringFileInfo\\040404b0\\LegalCopyright"), (LPVOID*) &LegalCopyright, &Len); // use LegalCopyright up to Len chars as needed...

最新文章

  1. OpenCascade Eigenvalues and Eigenvectors of Square Matrix
  2. [Java面试十一]数据库总结.
  3. 泌尿系统 Excretory system
  4. Base Pattern基本模式_Gateway入口
  5. C#中equals方法和==的区别
  6. poj2531
  7. 读excel时候出现java内存溢出
  8. 18.25 JLink调试程序步骤
  9. 记一次bond引起的网络故障
  10. ffmpeg源码安装
  11. Java实现月份递减
  12. 2.SlidingMenu(侧边栏效果)
  13. ubuntu之redis集群配置
  14. CSS单位分析
  15. ECMAScript 5和ECMAScript6的新特性以及浏览器支持情况
  16. .net下 本地锁、redis分布式锁、zk分布式锁的实现
  17. Ubuntu 64编译32位程序
  18. oracle所有的乱码解决方案
  19. 《时间序列分析及应用:R语言》读书笔记--第二章 基本概念
  20. JS数组去重的十种方法(转载)

热门文章

  1. JavaScript基础入门12 - 面向对象编程
  2. 不容错过的 Babel7 知识
  3. python-Web-数据库-Redis
  4. Linux中命令别名alias与命令替换
  5. 02-初识CSS
  6. mysql命令行备份方法
  7. 【并行计算-CUDA开发】从零开始学习OpenCL开发(一)架构
  8. JSON与对象,集合之间的转换
  9. Navicat 连接数据库避免中文显示乱码问题解决
  10. 安装gitlab ce