华为(smeidll.dll)短信接口中一个函数:
声明:
int WINAPI GetDeliverSMExEx(
ULONG* sm_ID, //返回:短讯ID
unsigned char* DestTON, //返回:目标地址号码类型
unsigned char* DestNPI, //返回:目标地址编码方案
char* DestAddr, //返回:目标地址
unsigned char* OrgTON, //返回:源地址号码类型
unsigned char* OrgNPI, //返回:源地址编码方案
char* OrgAddr, //返回:源地址
unsigned char* PRI, //返回:优先权
unsigned char* RP,
unsigned char* UDHI,
unsigned char* PID, //返回:协议类型
unsigned char* DCS, //返回:编码方案
char* TimeStamp, //返回:下发时间
unsigned long * UDLen,
char* UserData, //返回:用户数据
unsigned char* StatusReport //返回:状态报告标志,0表示不是状态报告,1:表示为状态报告
);
转成c#调用:
[DllImport("SMEIDLL.dll", CharSet=CharSet.Ansi)]
protected static extern int GetDeliverSMExExEx(
out ulong sm_ID,
[MarshalAs(UnmanagedType.U1)] out byte DestTON,
[MarshalAs(UnmanagedType.U1)] out byte DestNPI,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder DestAddr,
[MarshalAs(UnmanagedType.U1)] out byte OrgTON,
[MarshalAs(UnmanagedType.U1)] out byte OrgNPI,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder OrgAddr,
[MarshalAs(UnmanagedType.U1)] out byte PRI,
[MarshalAs(UnmanagedType.U1)] out byte RP,
[MarshalAs(UnmanagedType.U1)] out byte UDHI,
[MarshalAs(UnmanagedType.U1)] out byte PID,
[MarshalAs(UnmanagedType.U1)] out byte DCS,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder TimeStamp,
out ulong UDLen,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder UserData,
[MarshalAs(UnmanagedType.U1)] out byte StatusReport,
[MarshalAs(UnmanagedType.U1)] out byte sMsgID,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder sSubmitdate,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder sDonedate,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder sStatus,
int iDeliverAckResult);测试发现,OrgAddr解析不正确(这个是源手机号码),其他的如,短信内容,长度,都解析正确。
有人遇到过吗,up有分
声明:
int WINAPI GetDeliverSMExEx(
ULONG* sm_ID, //返回:短讯ID
unsigned char* DestTON, //返回:目标地址号码类型
unsigned char* DestNPI, //返回:目标地址编码方案
char* DestAddr, //返回:目标地址
unsigned char* OrgTON, //返回:源地址号码类型
unsigned char* OrgNPI, //返回:源地址编码方案
char* OrgAddr, //返回:源地址
unsigned char* PRI, //返回:优先权
unsigned char* RP,
unsigned char* UDHI,
unsigned char* PID, //返回:协议类型
unsigned char* DCS, //返回:编码方案
char* TimeStamp, //返回:下发时间
unsigned long * UDLen,
char* UserData, //返回:用户数据
unsigned char* StatusReport //返回:状态报告标志,0表示不是状态报告,1:表示为状态报告
);
转成c#调用:
[DllImport("SMEIDLL.dll", CharSet=CharSet.Ansi)]
protected static extern int GetDeliverSMExExEx(
out ulong sm_ID,
[MarshalAs(UnmanagedType.U1)] out byte DestTON,
[MarshalAs(UnmanagedType.U1)] out byte DestNPI,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder DestAddr,
[MarshalAs(UnmanagedType.U1)] out byte OrgTON,
[MarshalAs(UnmanagedType.U1)] out byte OrgNPI,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder OrgAddr,
[MarshalAs(UnmanagedType.U1)] out byte PRI,
[MarshalAs(UnmanagedType.U1)] out byte RP,
[MarshalAs(UnmanagedType.U1)] out byte UDHI,
[MarshalAs(UnmanagedType.U1)] out byte PID,
[MarshalAs(UnmanagedType.U1)] out byte DCS,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder TimeStamp,
out ulong UDLen,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder UserData,
[MarshalAs(UnmanagedType.U1)] out byte StatusReport,
[MarshalAs(UnmanagedType.U1)] out byte sMsgID,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder sSubmitdate,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder sDonedate,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder sStatus,
int iDeliverAckResult);测试发现,OrgAddr解析不正确(这个是源手机号码),其他的如,短信内容,长度,都解析正确。
有人遇到过吗,up有分
进来的也看下问题,不要光接分。
My-Blog地址2: http://blog.csdn.net/nyzfl
----CSDN疯人院官方全球战略合作伙伴
===========
没有错误
//测试发现,OrgAddr解析不正确(这个是源手机号码),其他的如,短信内容,长度,都解析正确。解析成什么了?乱码还是?
==================算是乱码吧,不是数字,是字母或\等组合的四位。
My-Blog地址2: http://blog.csdn.net/nyzfl
My-Blog地址1:http://www.cnblogs.com/nyzfl
My-Blog地址2: http://blog.csdn.net/nyzfl
My-Blog地址2: http://blog.csdn.net/nyzfl
My-Blog地址2: http://blog.csdn.net/nyzfl
----------------------------------------------------
纯.Net在线图像处理工具XPaint->http://www.crossgo.com
My-Blog地址1:http://www.cnblogs.com/nyzfl
My-Blog地址2: http://blog.csdn.net/nyzfl
My-Blog地址2: http://blog.csdn.net/nyzfl