我将一些Windows代码移植到Mac。 我遇到了一些使用typesin_addr代码,并在这里find了Windows实现的文档: http : //msdn.microsoft.com/en-us/library/windows/desktop/ms738571%28v=vs.85%29的.aspx
特别是我遇到的问题是代码试图访问in_addr,编译器(CLang)抱怨不存在的S_un属性。 看一下Mac实现的定义,我得到这个(在usr/include/netinet/in.h ):
struct in_addr { in_addr_t s_addr; };
…和in_addr_t定义如下(在usr/include/sys/types.h ):
typedef __uint32_t in_addr_t;
有没有人知道一个很好的解决方法,或者如果在Mac上的IPv4地址表示更紧密地绑定到Windows实现?
GetShortPathName不可预知的结果
CMake:无论如何强制链接库?
如何知道为什么GetPrivateProfileInt / String失败
Windows如何解决冲突的FileSystem权限/权限?
如何使用CreateProcess()和CreatePipe()从cmd.exe读取输出
线程调度中是否有简单而有意识的图/algorithm?
Qt4不会用CMake编译
dwPageSize和dwAllocationGranularity之间的关系
如何在Windows机器上虚拟扩展屏幕?
VirtualAlloc的混淆 – 是否只为页面?
看到我的评论。 但也…你可以在你的代码中实现窗口声明(只是不要叫它in_addr,以避免冲突)。 你可以做这样的事情:
typedef struct Win_in_addr { union { struct { __uint8_t s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { __uint16_t s_w1,s_w2; } S_un_w; __uint32_t S_addr; } S_un; } Win_IN_ADDR,*Win_PIN_ADDR,*Win_LPIN_ADDR;
但是请注意,这不是可移植的,只能在小端cpu上按照预期工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。