c++ - 链接某些 Windows API 时出现链接器错误

标签 c++ windows winapi registry linker-errors

我的系统中有一个 makefile 项目。最近,我添加了一些使用以下 Windows API 的新函数:

RegOpenKeyEx
RegEnumKeyEx
RegCloseKey
RegGetValue

为了获得这些 API,我还添加了 windows.h 头文件。 代码在我的机器上编译和链接正常。但是,在我同事的机器上链接失败。我们都在 64 位 Windows 机器上工作。 在他的电脑上我得到了错误:

error LNK2001: unresolved external symbol __imp_RegOpenKeyExW

error LNK2001: unresolved external symbol __imp_RegGetValueW

error LNK2001: unresolved external symbol __imp_RegCloseKey

error LNK2001: unresolved external symbol __imp_RegEnumKeyExW

我尝试过的: 由于正在使用的库是 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64

中的 Advapi32.lib

我尝试添加以下行:

LINKFLAGS += -L "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64"

我把库的路径添加到环境变量PATH

我将库复制到输出文件夹。

没有任何效果。

正如我之前所说,代码在我的电脑上运行良好,但在另一台电脑上运行失败。

最佳答案

注册表函数要求您将 Advapi32.lib 传递给链接器。这是您错过的步骤。

关于c++ - 链接某些 Windows API 时出现链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22954119/

相关文章:

c++ - 如何在 qgraphicsview 周围移动 QPixMapImage

c - 无需复制的 Windows 环形缓冲区

java - 我在 Windows 计算机上制作 java 程序然后在 Linux vps 上运行它会遇到问题吗?

c# - 如何使用 Win32 图标

c++ - 命名空间 'begin' 中没有名为 'std' 的成员

c++ - 新分配函数指针合法吗?

c++ - 强制无线网卡只扫描一个 channel (以编程方式)

c++ - CreateProcess 打开加载文件的程序

c++ - 如何突出显示 QListWidgetItem 文本中的特定字母?

windows - NDIS 版本的迁移