Windows中的这段简单代码将导致gethostbyname打印一条恼人的调试消息。
#include <stdio.h>
#include <winsock.h>
int main()
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
hostent* he = gethostbyname("www.stackoverflow.com");
char* ip = inet_ntoa(*(struct in_addr*)he->h_addr_list[0]);
printf(ip);
}上面写着:
onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider.cpp(550)\nlansp_c.dll!00007FFCFC1FC759: (caller: 00007FFD2856388E) LogHr(1) tid(6e14) 8007277C No such service is known. The service cannot be found in the specified name space.我在窗户上。使用visual studio 2019。我怎么能省略呢?目前,我正在调试,因为我的日志完全填充了这条消息,很难找到想要的日志。
发布于 2022-02-03 21:01:09
您所看到的行为似乎是由于分层服务提供者在Win11时是已弃用 (以及可能即将进行的Win10更新)。
GetHostByName被列为弃用,但GetHostName不是,而且也显示相同的行为。在这两种情况下,该方法首先查询任何可用的命名空间服务提供者,然后返回到查询NetBIOS名称(如果没有找到)。就Win11而言,枚举命名空间服务提供程序的调用似乎在内部失败,从而生成您看到的调试输出。
https://stackoverflow.com/questions/70694417
复制相似问题