Недавно я пытался заставить DLL иметь разные InternalName и OriginalFilename в зависимости от того, на какой платформе она скомпилирована.Если для DLL задано Release | x64, у нее должно быть одно имя, а если для Release | x86 - другое.У меня просто было два разных проекта, но я чувствовал, что проще создать ifdef.Проблема не имеет значения, что я делаю, InternalName и OriginalFilename ВСЕГДА заканчивают тем, что являются именем x86.
Ниже у меня есть небольшой фрагмент из моего файла Resource.h, где я храню ifdef.
Ниже приведен фрагмент из файла dll .rc, в котором определена эта деталь.
#ifdef WIN64
// 64 bit windows
#define DLLNAME "MyDLL.dll"
#else
// 32 bit windows
#define DLLNAME "MyDLL_WIN32.dll"
#endif // _WIN64 or _WIN32
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Software Company Inc."
VALUE "FileDescription", "Some DLL"
VALUE "FileVersion", "1.0.0.1"
VALUE "InternalName", DLLNAME
VALUE "LegalCopyright", "Copyright (C) 2019. All rights reserved."
VALUE "OriginalFilename", DLLNAME
VALUE "ProductName", "Some DLL"
VALUE "ProductVersion", "1.0.0.1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
Здесь приведены определения препроцессора, которые я установил.
Любая помощь в том, что я делаю неправильно, будет отличной.