1

我最近在 VS Professional 2008 中将一个项目从 x32 迁移到 x64,我收到了这个奇怪的链接器错误:

error LNK2001: unresolved external symbol __imp_PostMessageW
error LNK2001: unresolved external symbol __imp_FlushFileBuffers
error LNK2001: unresolved external symbol __imp_WriteFile
error LNK2001: unresolved external symbol __imp_WaitForSingleObject
error LNK2001: unresolved external symbol __imp_SetFilePointer
error LNK2001: unresolved external symbol __imp_EnterCriticalSection
...

更多的是这种性质。我在链接器中包含shlwapi.lib。在 Windows 7 x64 上运行。

附加依赖项:

在此处输入图像描述

4

2 回答 2

3

我的问题的解决方案是将Linker > General > Additional Library Directories设置为"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64"而不是"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib".

于 2013-07-25T14:27:28.610 回答
1

确保选择 x64 配置。在解决方案资源管理器窗口、属性、链接器、输入中右键单击您的项目。单击附加依赖项框,然后单击出现的按钮。

在此处输入图像描述

如果项目配置正确,这就是它的样子。请注意如何勾选“继承”复选框以及继承值如何列出标准 SDK 库。像 kernel32.lib,具有 __imp_FlushFileBuffers 定义的链接库等。如果它在您的项目中看起来不是这样,那么您将收到这些链接器错误。

于 2013-07-24T18:06:01.243 回答