gpt4 book ai didi

c - 在哪里可以找到 ntohl

转载 作者:行者123 更新时间:2023-11-30 18:23:05 27 4
gpt4 key购买 nike

我正在 Windows 上寻找一个头文件,我可以用它来获取 C 中的 ntohl 函数,但 Winsock2.h 对我不起作用。有谁知道其他什么头文件可以提供这个?

以下是我尝试包含 Winsock2.h 时遇到的一些错误

C:\Program Files (x86)\PellesC\Include\Win\Winsock2.h(1045): error #2120: Redeclaration of 'getservbyport', previously declared at C:\Program Files (x86)\PellesC\Include\Win\winsock.h(468); expected 'PSERVENT __stdcall function(int, const char *)' but found 'struct servent * __stdcall function(int, const char *)'.
C:\Program Files (x86)\PellesC\Include\Win\Winsock2.h(135): error #2123: Redefinition of 'hostent', previously defined at C:\Program Files (x86)\PellesC\Include\Win\winsock.h(91).
C:\Program Files (x86)\PellesC\Include\Win\ws2def.h(39): error #1050: Redefinition of macro 'AF_IPX'.
C:\Program Files (x86)\PellesC\Include\Win\Winsock2.h(1310): error #2121: Redeclaration of 'LPSOCKADDR_IN'.

最佳答案

它位于 winsock2.h 中,按照the MSDN docs并且,来 self 的开发系统(在 C:\Program files (x86) Microsoft SDKs\Windows\v7.0A\Include\Winsock2.h 中):

WINSOCK_API_LINKAGE u_long WSAAPI ntohl (__in u_long netlong);

我不确定为什么这对你来说“不起作用”。如果您收到错误消息,则需要将其发布。

<小时/>

根据您对 winsock2.h 遇到问题的原因的问题编辑,您似乎正在尝试同时包含 winsock.h winsock2.h - 这很少是一个好主意:-)它们实际上从根本上不兼容,winsock2 是具有额外优点的更高版本。

不幸的是,它并不总是在您明显的控制之下,因为在大多数情况下 windows.h 会自动为您包含 winsock.h

根据内存,解决此问题的一种方法是在包含 windows.h 之前定义 WIN32_LEAN_AND_MEAN。这将阻止包含一些较少使用的 header 。

另一种方法是在包含 windows.h 之前定义 _WINSOCKAPI_ - 这将阻止包含 winsock.h

第三种(可能是更好的)方法是简单地将 winsock2.h 包含在 之前 windows.h 中。 winsock2.h 定义了 _WINSOCKAPI_,因此与上一段具有相同的效果。

关于c - 在哪里可以找到 ntohl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9355785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com