//可能是这样
public struct MO_msg
{
public long msgID; //消息ID
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)]
public byte[] dest_id; //消息级别
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public byte[] service_id; //业务代码
public byte tp_pid;
public byte tp_udhi;
public byte msgFormat; //消息格式
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
public byte[] sourceUser; //发送消息的手机
public byte sourceTerminalType;//手机号码类型
public byte reg_deliver; //是否为应答消息,1=yes,0=no
public byte msgLen; //消息长度
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 161)]
public byte[] msg; //消息内容
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] linkid; //点播业务
};
public struct MO_msg
{
public long msgID; //消息ID
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)]
public byte[] dest_id; //消息级别
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public byte[] service_id; //业务代码
public byte tp_pid;
public byte tp_udhi;
public byte msgFormat; //消息格式
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
public byte[] sourceUser; //发送消息的手机
public byte sourceTerminalType;//手机号码类型
public byte reg_deliver; //是否为应答消息,1=yes,0=no
public byte msgLen; //消息长度
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 161)]
public byte[] msg; //消息内容
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] linkid; //点播业务
};
PInvoke.NET Visual Studio 插件
flankerfc 著于2007-10-10 2:27:15
在. NET中,有时要使用一些非托管代码,如Win32 API之类的。可以通过.NET 的 Platform Invoke(PInvoke)机制来完成。但是PInvoke 需要程序员提供函数声明,这点比较麻烦且有可能出错。PInvoke.NET将帮你避免错误,提高效率。