C++ #ifdef x64不适用于windows资源文件

C++ #ifdef x64不适用于windows资源文件,c++,visual-studio,winapi,conditional-compilation,resource-files,C++,Visual Studio,Winapi,Conditional Compilation,Resource Files,最近,我一直在尝试让一个DLL具有不同的InternalName和OriginalFilename,这取决于它编译为什么平台。如果DLL设置为Release | x64,它应该有一个名称,如果设置为Release | x86,它应该有另一个名称。我曾经有两个不同的项目,但觉得创建一个ifdef更容易。问题是无论我做什么,InternalName和OriginalFilename最终都是x86名称 下面是我存储ifdef的Resource.h文件中的一个小片段 下面的代码段来自定义该详细信息的dl

最近,我一直在尝试让一个DLL具有不同的InternalName和OriginalFilename,这取决于它编译为什么平台。如果DLL设置为Release | x64,它应该有一个名称,如果设置为Release | x86,它应该有另一个名称。我曾经有两个不同的项目,但觉得创建一个ifdef更容易。问题是无论我做什么,InternalName和OriginalFilename最终都是x86名称

下面是我存储ifdef的Resource.h文件中的一个小片段

下面的代码段来自定义该详细信息的dlls.rc文件

#ifdef WIN64
//64位窗口
#定义DLLNAME“MyDLL.dll”
#否则
//32位窗口
#定义DLLNAME“MyDLL\u WIN32.dll”
#endif/_WIN64或_WIN32
开始
阻止“StringFileInfo”
开始
块“040904b0”
开始
价值“公司名称”,“软件公司”
值“FileDescription”,“某些DLL”
值“FileVersion”、“1.0.0.1”
值“InternalName”,DLLNAME
价值“LegalCopyright”,“版权(C)2019.保留所有权利。”
值“OriginalFilename”,DLLNAME
值“ProductName”、“某些DLL”
值“ProductVersion”、“1.0.0.1”
终止
终止
阻止“VarFileInfo”
开始
值“Translation”,0x409,1200
终止
终止
以下是我设置的预处理器定义


< >对于我做的任何错误的帮助都是很好的。

< P>如果你检查.RC文件上的属性,你会发现它不继承C++编译器使用的预处理器定义。
您必须为每个需要的配置显式地将
WIN64
定义添加到.RC文件的选项中。

您应该在配置属性的
参考资料
部分下查找与
.RC
文件相关的选项-它们不是C/C++文件。好的。这就是我所缺少的。谢谢