小编vbi*_*est的帖子

编组c#调用DLL库

我无法调用具有特定签名的DLL库.这是在xamarin平台上并在iOS上运行.我想获得一个DNS服务器列表.我可以毫无问题地调用其他函数,但我真正需要的函数不起作用.我确信这是因为我的结构不正确.我认为问题是"联盟"类型.我只是不知道我的结构应该是什么样的安抚该参数.以下是相关的c ++类型:

1:DLL的单一性

`int res_getservers __P((res_state, union res_sockaddr_union * , int));`
Run Code Online (Sandbox Code Playgroud)

2:c ++结构

union res_sockaddr_union {
    struct sockaddr_in  sin;
#ifdef IN6ADDR_ANY_INIT
    struct sockaddr_in6 sin6;
#endif
#ifdef ISC_ALIGN64
    int64_t         __align64;  /* 64bit alignment */
#else
    int32_t         __align32;  /* 32bit alignment */
#endif
    char            __space[128];   /* max size */
};


struct sockaddr_in6 {
    __uint8_t   sin6_len;   /* length of this struct(sa_family_t) */
    sa_family_t sin6_family;    /* AF_INET6 (sa_family_t) */
    in_port_t   sin6_port;  /* Transport layer port # (in_port_t) */
    __uint32_t  sin6_flowinfo;  /* IP6 flow information …
Run Code Online (Sandbox Code Playgroud)

.net c# marshalling xamarin

8
推荐指数
1
解决办法
283
查看次数

标签 统计

.net ×1

c# ×1

marshalling ×1

xamarin ×1