DHCPSAPI DhcpAddServer链接器错误
DHCPSAPI DhcpAddServer linker error
我正在尝试在c++应用程序中使用DHCP服务器管理API。当我想使用DhcpAddServer函数时,我总是会收到一个链接器错误(LNK2001未解析的外部符号_DhcpAddServer)。所有其他功能似乎都能正常工作。
我已经尝试过SDK V7.0A和V7.1(目标系统是WinXP)。
这是一个测试代码:
#include <windows.h>
#include <dhcpsapi.h>
#include <tchar.h>
#pragma comment(lib, "dhcpsapi.lib")
DWORD TestDHCPAddServer();
DWORD TestDHCPGetVersion();
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
DWORD TestDHCPAddServer()
{
DHCP_SERVER_INFO serverInfo;
DWORD errorCode=0;
serverInfo.Version = 0;
serverInfo.ServerName = L"xxxx";
serverInfo.ServerAddress = 1234;
serverInfo.Flags = 0;
serverInfo.State = 0;
serverInfo.DsLocation = NULL;
serverInfo.DsLocType = 0;
errorCode = DhcpAddServer(0, NULL, &serverInfo, NULL, NULL);
return errorCode;
}
DWORD TestDHCPGetVersion()
{
DWORD majorVersion = 0;
DWORD minorVersion = 0;
DWORD errorCode = 0;
errorCode = DhcpGetVersion(NULL, &majorVersion, &minorVersion);
return errorCode;
}
当删除TestDHCPAddServer时,代码会编译,这意味着lib通常可以工作。我还使用了dumpbin.exe/exports,它说该函数应该在两个版本的lib中都可用。
当使用/verbose运行链接器时,我可以看到它在lib中找到了DhcpGetVersion,但没有找到DhcpAddServer。
我遇到了同样的问题,能够使用编译器选项/Gz编译代码(默认情况下使用调用约定_stdcall而不是_cdecl)。在平台SDK的dhcpsapi.h的给定头文件中,对于某些函数(包括DhcpAddServer),没有明确给定的调用约定。这意味着,将使用默认的编译器选项(_cdecl)。但Win32 Api的标准是_stdcall。
相关文章:
- Netbeans 10:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- CMake 错误:链接器命令失败,退出代码为 1 和 cpp.o 文件
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 如何修复 clang: 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- Android NDK.Build命令失败.未定义的引用.clang++:错误:链接器命令失败,退出代码为1
- 使用cmake错误链接boost日志
- 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用):在 Macbook 上
- C++ XCODE ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -
- clang:错误:链接器命令失败,C++代码中的退出代码为 1(使用 -v 查看调用)
- 静态库中的 g++ 错误链接函数
- 未定义的参考错误链接天然函数Android
- C++编译错误:ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v
- QT Q_PROPERTY错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- OSX MOJAVE -LD:架构X86_64 clang找不到符号:错误:链接器命令失败,出口代码1
- C 错误链接器命令失败了出口代码1(使用-V查看调用)
- LD:架构x86_64 clang找不到符号:错误:链接器命令失败,出口代码1(使用-v to See
- 聚输出错误 - 链接列表
- Xcode链接器错误:链接器命令失败,退出代码为1(使用-v查看调用)
- 尝试构建C DLIB示例无法与数百个未定义的参考错误链接