华为(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有分

解决方案 »

  1.   

    baidu了下,所有内容看了,没讨论这个问题。不相信是华为接口出问题,高手指点。
    进来的也看下问题,不要光接分。
      

  2.   

    My-Blog地址1:http://www.cnblogs.com/nyzfl
    My-Blog地址2: http://blog.csdn.net/nyzfl
      

  3.   

    没坐到沙发,也没做过SP方面的沙发党  -_-#!
    ----CSDN疯人院官方全球战略合作伙伴
      

  4.   

    //测试发现,OrgAddr解析不正确(这个是源手机号码),其他的如,短信内容,长度,都解析正确。解析成什么了?乱码还是?
      

  5.   

    出什么样的错误?
    ===========
    没有错误
    //测试发现,OrgAddr解析不正确(这个是源手机号码),其他的如,短信内容,长度,都解析正确。解析成什么了?乱码还是?
    ==================算是乱码吧,不是数字,是字母或\等组合的四位。
      

  6.   

    My-Blog地址1:http://www.cnblogs.com/nyzfl
    My-Blog地址2: http://blog.csdn.net/nyzfl
      

  7.   

    各位兄弟,华为的smeidll.dll是用c++写的,但也可以用c#来调用啊。做过的都干什么去了,指点一二,万分感谢。
    My-Blog地址1:http://www.cnblogs.com/nyzfl
    My-Blog地址2: http://blog.csdn.net/nyzfl
      

  8.   

    有人没啊My-Blog地址1:http://www.cnblogs.com/nyzfl
    My-Blog地址2: http://blog.csdn.net/nyzfl
      

  9.   

    有人做过没啊My-Blog地址1:http://www.cnblogs.com/nyzfl
    My-Blog地址2: http://blog.csdn.net/nyzfl
      

  10.   

    My-Blog地址2: http://blog.csdn.net/nyzfl顶了!!!
      

  11.   

    是不是传入的数据有问题,你的char* DestAddr为什么能解析正确?
    ----------------------------------------------------
    纯.Net在线图像处理工具XPaint->http://www.crossgo.com
      

  12.   


    My-Blog地址1:http://www.cnblogs.com/nyzfl
    My-Blog地址2: http://blog.csdn.net/nyzfl
      

  13.   

    结贴没找到答案My-Blog地址1:http://www.cnblogs.com/nyzfl
    My-Blog地址2: http://blog.csdn.net/nyzfl