0

我正在尝试使用:

#include "Resource.h"

#ifdef __x86_64
IDR_D3D9X43     BINARY              "D3DX9_43_64.dll"
#else
IDR_D3D9X43     BINARY              "D3DX9_43_32.dll"
#endif

在我的资源文件(.rc)中。当我为 x64 编译时,它应该包含 x64 资源。当我为 x32 编译时,它应该包含 x32 资源。然而,它没有..

它正在使用以下方式编译:

x86_64-w64-mingw32-g++.exe -Wall -fexceptions -O2 -m64 -std=c++11  -c C:\Users\School\Desktop\TestLoader\main.cpp -o obj\Release\main.o
windres.exe --target=pe-x86-64  -J rc -O coff -i C:\Users\School\Desktop\TESTLO~1\RESOUR~1\Resource.rc -o obj\Release\Resources\Resource.res
x86_64-w64-mingw32-g++.exe  -o bin\Release\TestLoader.exe obj\Release\main.o  obj\Release\Resources\Resource.res -s -m64 -static -static-libgcc -static-libstdc++  

输出文件为 bin\Release\TestLoader.exe,大小为 3.02 MB

对于 x64 编译,它使用:

x86_64-w64-mingw32-g++.exe -Wall -fexceptions -O2 -m32 -std=c++11  -c C:\Users\School\Desktop\TestLoader\main.cpp -o obj\Release\main.o
windres.exe --target=pe-i386  -J rc -O coff -i C:\Users\School\Desktop\TESTLO~1\RESOUR~1\Resource.rc -o obj\Release\Resources\Resource.res
x86_64-w64-mingw32-g++.exe  -o bin\Release\TestLoader.exe obj\Release\main.o  obj\Release\Resources\Resource.res -s -m32 -static -static-libgcc -static-libstdc++  

用于 x32 编译。

任何想法为什么它不有条件地包含特定资源?它始终包含文件顶部的第一个资源.. 也就是 x64 资源。

4

0 回答 0