c++ - 根据平台目标修改 OriginalFilename 字符串

标签 c++ macros visual-studio-2017 resources

我有一个使用 Visual Studio 2017 构建的标准 C++ 控制台应用程序。我通过右键单击项目名称然后选择“添加”、“资源”、“版本”来添加一个VS_VERSION_INFO 资源。我想将 OriginalFilename 字符串设置为 MyProject.x86 我构建项目targeting x86 和< strong>MyProject.x64 何时 我构建targeting x64。我尝试用记事本编辑自动生成的 .rc 文件,但我总是得到该字符串为“Nothing_is_defined”

#ifdef _M_X64 // Building to x64
            VALUE "OriginalFilename", "Setup.x64"
#elif _M_IX86 // Building to x86
            VALUE "OriginalFilename", "Setup.x86"
#else
            VALUE "OriginalFilename", "Nothing_is_defined"
#endif

我应该怎么做才能根据平台目标更改该字符串?

最佳答案

资源是用单独的资源编译器工具编译的。该工具有一组单独的预处理器定义,可以在项目属性 -> 资源 -> 常规选项卡中进行调整。默认情况下,特定于目标的宏(如 _M_X64(由 C++ 编译器定义)未为资源编译器定义,因此您需要手动提供它们。

关于c++ - 根据平台目标修改 OriginalFilename 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51528922/

相关文章:

javascript - Visual Studio 无法识别 React/Redux 语法

c++ - UDT 服务器缓冲区大小?

c - 这个宏是什么 #define type_string(name) { #name , name }

macros - Scheme (Kawa) - 如何在另一个宏中强制展开宏

c - Stringify 一级宏展开 C

xamarin.forms - 我应该为 Xamarin.Form 创建什么样的项目(共享或 .Net 标准)?

从基类继承的C++公共(public)方法不能访问派生类中的私有(private)成员变量

C++ LoadLibrary ERROR_NOACCESS "Invalid access to memory location."

C++ Libcurl 无法清除 header

c# - 如何在 Visual Studio 中查找 MVC Controller 方法的引用