如何在没有主机名的情况下检索与主机名相关的 IP #include <winsocket2.h>
?我不能使用这些<winsocket2.h>
方法,因为我的 DLL 在没有任何编译错误的情况下崩溃,以下代码不起作用......
hostent *h = gethostbyname(hostName);
LogAlways((const char*)inet_ntoa(*(reinterpret_cast<in_addr*>(h->h_addr))));
如果没有包含(或对外部库的依赖),几乎没有办法。
为了获得映射到 IP 的主机名,您需要执行 RARP 请求,这几乎要求您能够使用套接字。因此,您需要以一种或另一种方式创建套接字。这是 winsock2.lib 作为库提供的。
所以,你最好让 winsock2.lib 工作。当您说您的 DLL 崩溃而没有任何编译错误时,我假设您正在谈论您自己的代码,您正在尝试将其编译成 DLL。
调试呢?您是否尝试过单步执行代码以查看失败的地方?主机名的类型是什么?检查以确保您没有尝试访问空指针上的成员。并且在使用变量之前您已经正确分配了内存。否则,请让我们更具体地了解您在调试器中收到的错误消息。