所以我正在尝试将旧版应用程序从 32 位编译到 64 位。我重新编译了它使用的所有库,并使其看起来像 WIN SDK6.0A x64 位的库。
我在用:
- Visual Studio 专业版 2008
- 视觉 C++
- dotNet 框架 3.5 SP1
- 视窗服务器 2008R2
- Windows SDK 为 6.0A
一切终于出现了,但我收到了这些奇怪的未定义符号错误:
error LNK2019: unresolved external symbol InterlockedDecrement referenced in function ...
error LNK2019: unresolved external symbol InterlockedIncrement referenced in function ...
error LNK2019: unresolved external symbol GetModuleBaseName referenced in ...
error LNK2019: unresolved external symbol EnumProcessModules referenced in ...
error LNK2019: unresolved external symbol EnumProcesses referenced in ...
error LNK2019: unresolved external symbol GetProcessMemoryInfo referenced
问题是这些都是来自 SDK 的胜利内容。InterlockedDec 和 InterlockedInc 来自 kernel32.lib GetModuleBaseName、EnumProcessModules、EnumProcesses、GetProcessMemoryInfo 在 psapi.h 以及 kernel32.lib 或 psapi.lib
我检查了 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64 并且 libs kernel32.lib 和 psapi.lib 都在那里。
它肯定会在正确的位置查找库。我打开 /VERBOSE:LIB 并指向正确的文件夹。
所以我真的很困惑为什么没有找到它们。
有任何想法吗???
谢谢