我正在使用 Visual Studio 2010 Pro 中的(非托管)x64 Win32 C++ 应用程序,并且不断收到奇怪的链接错误。
此应用程序通过包含使用LoadImage()
Windows API 功能windows.h
。虽然应用程序在 Release 配置中编译得很好(并LoadImage()
完成了它的工作),但我无法在 Debug 配置中获得链接的可执行文件。我不断收到此错误:
Redacted.obj : error LNK2019: unresolved external symbol __imp_LoadImageW referenced in function "public: int __cdecl Redacted::Redacted::Execute(void)" (?Execute@Redacted@Redacted@@QEAAHXZ)
C:\Users\redacted\Documents\Visual Studio 2010\Projects\Redacted\x64\Debug\Redacted.exe : fatal error LNK1120: 1 unresolved externals
如果我从 Unicode 切换到非多字节字符集,错误消息将相应地更改LoadImageW()
为LoadImageA()
,但否则会持续存在。由于我在 Release 和 Debug 配置的属性中找不到任何相关差异,我不知道为什么它会编译成一个,而不是另一个。User32.lib
在两种配置中都正确设置为链接器的附加依赖/MACHINE:X64
项,并且在两者中都设置了标志。
由于链接器不会抱怨找不到 . User32.lib
,因此我相信它试图从 Platform SDK 链接错误的版本,即 32 位版本。但是我怎样才能找出链接器实际尝试使用的 LIB 文件的确切副本呢?