Я пытаюсь использовать DHCP Server Management API в приложении C++. Когда я хочу использовать функцию DhcpAddServer, я всегда получаю ошибку компоновщика (LNK2001 неразрешенный внешний символ _DhcpAddServer). Все остальные функции работают нормально.Ошибка компоновщика DHCPSAPI DhcpAddServer
Я уже пробовал SDK V7.0A и V7.1 (целевая система Win XP).
Вот тестовый код:
#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 удаляется, код компилируется, а это значит, что Либерал работ в целом. Я также использовал dumpbin.exe/exports, и он говорит, что функция должна быть доступна в обеих версиях lib.
При запуске компоновщика с/verbose я вижу, что он находит DhcpGetVersion в lib, но не DhcpAddServer.