我创建了一个vs 2010 win 32程序(操作系统:Win 8-64bit)
然后,我尝试通过这样做将这个 win32 程序转换为 x64:
Configuration Manager -> new solution platform (select x64) -> copy settings from win32
vs2010在之前的win32程序的基础上创建了一个新的x64程序。
但是,当我尝试编译和运行 x64 程序时,出现了一个错误:msvcprtd.lib(MSVCP100D.dll):致命错误 LNK1112:模块机器类型“X86”与目标机器类型“x64”冲突
通过重命名 msvcprtd.lib 的 win32 版本和 x64 版本,我发现程序仍在使用 win32 msvcprtd.lib。
我检查并发现 msvcprtd.lib 在 $(VCInstallDir)lib\amd64 中。而且:
Library Directories -> Inherited values 包含了所有必要的目录(我认为):
$(VCInstallDir)lib\amd64
$(VCInstallDir)atlmfc\lib\amd64
$(WindowsSdkDir)lib\x64
我还检查了程序使用的第 3 方库和 dll 是 x64 版本的。
我的问题是为什么程序还在使用 win32 msvcprtd.lib 以及如何解决这个问题?