在 C# 中使用 in_addr
我正在尝试使用 P/Invoke 与本机 DLL 进行交互,但它需要 in_addr
结构参数。我不断看到它的许多不同类型的定义,但哪种定义最好?
另外,如何将 C# IPAddress
对象转换为 in_addr
结构?
I'm trying to interact with a native DLL using P/Invoke, but it requires an in_addr
struct parameter. I keep seeing many different kinds of definitions for it, but which is the best to use?
Also, how can I convert a C# IPAddress
object to an in_addr
struct?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果有人感兴趣,这里是完整的代码。它能够将
IPAddress
对象解压为in_addr
结构,然后再解压回来。和 JaredPar 一样,我仍然不知道如何处理 Anonymous3,但这并不重要,因为它无论如何都无法设置。由于它们都具有相同的 FieldOffset,因此设置一个字段会清除所有其他字段。不过,它似乎有效,所以我不太担心。
In case anyone is interested, here is the full code. It's capable of unpacking an
IPAddress
object to anin_addr
struct and back again.Like JaredPar, I still don't know what to do with Anonymous3, but it doesn't really matter because it can't be set anyway. Since they all have the same FieldOffset, setting one field clears all of the others. It appears to work, though, so I'm not too worried about it.
尝试使用以下
生成的 PInvoke Interop Assistant
编辑 清理了匿名名称。
Try the following
Generated with PInvoke Interop Assistant
EDIT Cleaned up the anonymous names.