我的操作系统是Windows 7,64位。
在Visual Studio中,我正在尝试将此C ++ CLR项目构建为32位,但在构建它之后,当我在其上运行Dependency Walker时,它使用的每个系统dll(例如,kernel32
)是64位,因此给出错误“找到了具有不同CPU类型的模块”。
我已经将平台选项设置为Win32(顺便说一下,这是对的吗?我预计x86,是Win32的等价吗?)。
我还检查了Linker->Advanced->Target Machine
中的MachineX86
是否等于EDIT 1:
。
我还能做些什么来构建针对32位的内容。
corflags
由于HansPassant质疑Dependency Walker的可靠性,我使用Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 0x10
ILONLY : 0
32BITREQ : 0
32BITPREF : 0
Signed : 0
检查了位数。
结果如下:
{{1}}
根据这个this答案,显然dll的目标是“任何CPU”。
我已经定位了32位,为什么会这样?