C原型:
typedef enum _SUPPORT_LAYER
{
HDLC = 0x01,
TCPIP,
UDPIP
}SUPPORT_LAYER;
typedef union _ADDR
{
struct
{
unsigned int ServerLowerAddr : 14; //服务器低地址
unsigned int ServerUpperAddr : 14; //服务器高地址
unsigned int res : 4;
unsigned char ClientAddr;
unsigned char ServerAddrLen;
}HDLC_ADDR1; struct
{
unsigned int ServerAddr : 28;
unsigned int res : 4;
unsigned char ClientAddr;
unsigned char ServerAddrLen;
}HDLC_ADDR2; struct
{
unsigned int Client_TCP_Port;
unsigned int Server_TCP_Port;
unsigned char Client_IP_Addr[4];
unsigned char Server_IP_Addr[4];
}TCPIP_ADDR; struct
{
unsigned int Client_wPort;
unsigned int Server_wPort;
unsigned int Client_UDP_Port;
unsigned int Server_UDP_Port;
unsigned char Client_IP_Addr[4];
unsigned char Server_IP_Addr[4];
}UDPIP_ADDR;
}ADDR; int ProcessServicePrimitive(unsigned char **OUTData, unsigned int &OUTDataLen,SUPPORT_LAYER SupportLayerType, ADDR Addr,const unsigned char *Xml, unsigned int XmlLen);
请问如何用C#调用ProcessServicePrimitive参数?C#Cstruct
typedef enum _SUPPORT_LAYER
{
HDLC = 0x01,
TCPIP,
UDPIP
}SUPPORT_LAYER;
typedef union _ADDR
{
struct
{
unsigned int ServerLowerAddr : 14; //服务器低地址
unsigned int ServerUpperAddr : 14; //服务器高地址
unsigned int res : 4;
unsigned char ClientAddr;
unsigned char ServerAddrLen;
}HDLC_ADDR1; struct
{
unsigned int ServerAddr : 28;
unsigned int res : 4;
unsigned char ClientAddr;
unsigned char ServerAddrLen;
}HDLC_ADDR2; struct
{
unsigned int Client_TCP_Port;
unsigned int Server_TCP_Port;
unsigned char Client_IP_Addr[4];
unsigned char Server_IP_Addr[4];
}TCPIP_ADDR; struct
{
unsigned int Client_wPort;
unsigned int Server_wPort;
unsigned int Client_UDP_Port;
unsigned int Server_UDP_Port;
unsigned char Client_IP_Addr[4];
unsigned char Server_IP_Addr[4];
}UDPIP_ADDR;
}ADDR; int ProcessServicePrimitive(unsigned char **OUTData, unsigned int &OUTDataLen,SUPPORT_LAYER SupportLayerType, ADDR Addr,const unsigned char *Xml, unsigned int XmlLen);
请问如何用C#调用ProcessServicePrimitive参数?C#Cstruct
解决方案 »
- onpaint(PaintEventArgs e)方法如何调用啊?
- 急求一个用C#编译的简单的连连看游戏
- 是不是一个对象在 console.writeline()中输出,都是默认输出对象的 toString()方法?
- 请问:将Javascript放在前台可以执行,为什么放在Js文件中就不执行了呢?
- 通过一个URI,如何实现从服务器下载文件的问题。
- 急!急!急!如何让控件随着窗口改变大小和位置?
- 刚开始学习C#,有个题目是,在标签上随机显示出10个两位数,并指出最大的两位数是在第几个。我做出来了,没有错误,但是执行时总是不出现那10个数。
- ListView显示0-0-0形式的数据库字段时多出...的问题。
- winform 生成 编号
- 请教个.net Remoteing 的问题.
- ILMerge合并时的错误,exe的config文件合并不进去
- 一个页面给有两个 gridview怎么传递参数
{
HDLC = 0x01,
TCPIP,
UDPIP
}
[StructLayout(LayoutKind.Sequential)]
public struct HDLC_ADDR1
{
public uint ServerLowerAddr;
public uint ServerUpperAddr;
public uint res;
public char ClientAddr;
public char ServerAddrLen;
};
[StructLayout(LayoutKind.Sequential)]
public struct HDLC_ADDR2
{
public uint ServerAddr;
public uint res;
public char ClientAddr;
public char ServerAddrLen;
}
[StructLayout(LayoutKind.Sequential)]
public struct TCPIP_ADDR
{
public uint Client_TCP_Port;
public uint Server_TCP_Port;
public char [] Client_IP_Addr;
public char [] Server_IP_Addr;
}
[StructLayout(LayoutKind.Sequential)]
public struct UDPIP_ADDR
{
public uint Client_wPort;
public uint Server_wPort;
public uint Client_UDP_Port;
public uint Server_UDP_Port;
public char [] Client_IP_Addr;
public char [] Server_IP_Addr;
}
[StructLayout(LayoutKind.Explicit,Size=500)] public struct ADDR
{ [FieldOffset(0)]
public HDLC_ADDR1 a; [FieldOffset(50)]
public HDLC_ADDR2 b; [FieldOffset(180)]
public TCPIP_ADDR c; [FieldOffset(300)]
public UDPIP_ADDR d;
}
[DllImport("pro_C62056.dll")]
public static extern int ProcessServicePrimitive(
ref string str, ref UInt32 len, SUPPORT_LAYER SupportLayerType, ADDR Addr,
string strxml, int len1);
我这样调用老是提示外部组件异常
[StructLayout(LayoutKind.Explicit,Size=24)]
public struct ADDR
{ [FieldOffset(0)]
public HDLC_ADDR1 a; [FieldOffset(0)]
public HDLC_ADDR2 b; [FieldOffset(0)]
public TCPIP_ADDR c; [FieldOffset(0)]
public UDPIP_ADDR d;
}