有.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...

从rc文件访问字符串的更多相关文章

  1. Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块

    Python第五天   文件访问    for循环访问文件    while循环访问文件   字符串的startswith函数和split函数  linecache模块 目录 Pycharm使用技巧( ...

  2. Qt之添加Windows资源文件(.rc文件)

    简述 在Windows下使用Qt时,通常会用到Windows的资源文件 - 为exe设置信息,其中包括:文件说明.产品名称.产品版本.版权等信息... 由于是Windows平台相关的东西,Qt助手中对 ...

  3. Visual Studio下,打开资源视图rc文件,提示在另一个编辑器中打开

    在网上搜索关键字: rc文件   提示在另一个编辑器中打开 很多地方的回答都是说: rc文件以代码形式打开了,只要关掉后再打开就可以了. 但是,很多时候,当关闭掉RC的代码文件以后,发现VS的RC文件 ...

  4. init进程解析rc文件的相关函数分析

    init进程的源码文件位于system/core/init,其中解析rc文件语法的代码放在五个函数中, init_parse_config_file (init_parser.c), read_fil ...

  5. Qt之Windows资源文件(.rc文件)

    简述 在Windows下使用Qt时,通常会用到Windows的资源文件 - 为exe设置信息,其中包括:文件说明.产品名称.产品版本.版权等信息... 由于是Windows平台相关的东西,Qt助手中对 ...

  6. Qt之生成Window资源文件(.rc 文件)

    简述 qmake 可以随意地自动生成一个适当填充的 Windows 资源文件.本节主要讲解如何用 qmake 处理一个 Windows 资源文件,并将其链接到一个可执行应用程序(EXE)或动态链接库( ...

  7. Android init.rc文件浅析

    Android init.rc文件浅析 分类: Android2012-04-13 18:00 13149人阅读 评论(2) 收藏 举报 androidservicepathactionsocketc ...

  8. linux文件访问权限(像rw-r--rw-是什么意思)

    Linux的文件访问权限分为 读.写.执行三种 r:可读(4) w:可写(2)对目录来说则可新建文件 x:可执行(1)对目录来说则可进入该目录 可用 ls -l 查看文件 像上图的-rw-r--rw- ...

  9. MFC关于.rc文件 .rc2文件

    .rc文件和.rc2文件 c和rc2都是资源文件,包含了应用程序中用到的所有的资源. 两者不同在于:rc文件中的资源可以直接在VC集成环境中以可视化的方法进行编辑和修改; 而rc2中的资源不能在VC的 ...

随机推荐

  1. docker 入门 命令

    docker 命令 docker images 镜像列表 docker ps 服务列表 docker 隐藏打包文件 .dockerignore .git node_modules npm-debug. ...

  2. B/S结构-登录页面-测试用例设计

    页面描述: 有一个登陆页面, 假如上面有2个textbox, 一个提交按钮 测试需求: 请针对这个页面设计30个以上的testcase 功能测试(Function test) 0. 什么都不输入,点击 ...

  3. xgboost的使用

    1.首先导入包 import xgboost as xgb 2.使用以下的函数实现交叉验证训练xgboost. bst_cvl = xgb.cv(xgb_params, dtrain, num_boo ...

  4. json字段为null时输出空字符串

    Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put(); jsonMa ...

  5. java 寻找水仙花数

    题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1 ...

  6. Python环境配置问题及解决办法

    Windows下用pip安装包时出现"error: Microsoft Visual C++ 9.0 is required"错误 error: Microsoft Visual ...

  7. 设计模式:模板方法(Template method)

    首先我们先来看两个例子:冲咖啡和泡茶.冲咖啡和泡茶的基本流程如下: 所以用代码来创建如下: 咖啡:Caffee.java public class Coffee { void prepareRecip ...

  8. Linux就该这么学——新手必须掌握的命令之我的第一个命令

    1.Linux操作系统的开机进程(基本过程) (1).内核的引导: BIOS自检,安装BIOS默认设置的启动设备(硬盘)来启动.读取目录/boot目录下的内核文件 (2).运行init: 运行init ...

  9. cf 1163D Mysterious Code (字符串, dp)

    大意: 给定字符串$C$, 只含小写字母和'*', '*'表示可以替换为任意小写字母, 再给定字符串$S,T$, 求$S$在$C$中出现次数-$T$在$C$中出现次数最大值. 设$dp[i][j][k ...

  10. Java线程和进程

    一.线程 1.什么是线程: 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.一个进程至少包含一个线程,也可以多个,线程属于进程. 2.Java中线程经历的四个 ...