2886|5

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

仿照sdk里面的发短信的例程,改写了一段代码,遇到了问题 [复制链接]

仿照sdk里面的发短信的例程,改写了一段代码,不知道怎么回事,总是发送不成功,请高手帮我看看 问题出在哪?

  1. SMS_HANDLE smshHandle;
  2.         SMS_ADDRESS smsaSource;
  3.         SMS_ADDRESS smsaDestination;
  4.         TEXT_PROVIDER_SPECIFIC_DATA tpsd;
  5.         SMS_MESSAGE_ID smsmidMessageID;


  6.         BOOL bRetVal=FALSE;
  7.         LPCTSTR lpszRecipient;
  8.         LPCTSTR lpszMessage;
  9.         UpdateData();
  10.         lpszRecipient=m_receiver;
  11.         lpszMessage=m_msg;

  12.         // try to open an SMS Handle
  13.         if(FAILED(SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, &smshHandle, NULL)))
  14.         {
  15.                 //return bRetVal;
  16.                 bRetVal=FALSE;
  17.         }

  18.         // Create the destination address
  19.         smsaSource.smsatAddressType = SMSAT_NATIONAL;
  20.         smsaDestination.smsatAddressType = SMSAT_NATIONAL;  

  21.         _tcsncpy(smsaDestination.ptsAddress, lpszRecipient, SMS_MAX_ADDRESS_LENGTH);

  22.         // Set up provider specific data
  23.         memset(&tpsd, 0, sizeof(tpsd));
  24.         tpsd.dwMessageOptions = PS_MESSAGE_OPTION_NONE;
  25.         tpsd.psMessageClass = PS_MESSAGE_CLASS1;
  26.         tpsd.psReplaceOption = PSRO_NONE;
  27.         tpsd.dwHeaderDataSize = 0;

  28.         // Send the message, indicating success or failure
  29.         if(SUCCEEDED(SmsSendMessage(smshHandle, NULL,
  30.                 &smsaDestination, NULL, (PBYTE) lpszMessage,
  31.                 _tcslen(lpszMessage) * sizeof(TCHAR), (PBYTE) &tpsd,
  32.                 sizeof(TEXT_PROVIDER_SPECIFIC_DATA), SMSDE_OPTIMAL,
  33.                 SMS_OPTION_DELIVERY_NONE, &smsmidMessageID)))
  34.         {
  35.                 bRetVal = TRUE;
  36.                 AfxMessageBox(_T("Send SMS succussful!"));
  37.         }
  38.         else
  39.         {
  40.                 bRetVal = FALSE;
  41.         }
  42.         // clean up
  43.         VERIFY(SUCCEEDED(SmsClose(smshHandle)));
复制代码

最新回复

…… 用你的代码就可以了 唉 高手就是高手啊  详情 回复 发表于 2009-3-5 16:30
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
参数问题
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
BOOL SendSMS(LPCTSTR lpszRecipient, LPCTSTR lpszMessage)
{
    BOOL bRetVal = FALSE;

    SMS_HANDLE smshHandle;
    SMS_ADDRESS smsaSource;
    SMS_ADDRESS smsaDestination;
    TEXT_PROVIDER_SPECIFIC_DATA tpsd;
    SMS_MESSAGE_ID smsmidMessageID;

    // try to open an SMS Handle
    if(FAILED(SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, &smshHandle, NULL)))
    {
        return bRetVal;
    }

    // Create the destination address
    smsaSource.smsatAddressType = SMSAT_UNKNOWN;   
    smsaDestination.smsatAddressType = SMSAT_UNKNOWN;  

    _tcsncpy(smsaDestination.ptsAddress, lpszRecipient, SMS_MAX_ADDRESS_LENGTH);

    // Set up provider specific data
    memset(&tpsd, 0, sizeof(tpsd));
    tpsd.dwMessageOptions = PS_MESSAGE_OPTION_NONE;
    tpsd.psMessageClass = PS_MESSAGE_CLASS1;
    tpsd.psReplaceOption = PSRO_NONE;
    tpsd.dwHeaderDataSize = 0;

    // Send the message, indicating success or failure
    if(SUCCEEDED(SmsSendMessage(smshHandle, NULL,
        &smsaDestination, NULL, (PBYTE) lpszMessage,
        _tcslen(lpszMessage) * sizeof(TCHAR), (PBYTE) &tpsd,
        sizeof(TEXT_PROVIDER_SPECIFIC_DATA), SMSDE_OPTIMAL,
        SMS_OPTION_DELIVERY_NONE, &smsmidMessageID)))
    {
        bRetVal = TRUE;
    }
    else
    {
        bRetVal = FALSE;
    }

    // clean up
    SmsClose(smshHandle);

    return bRetVal;
}
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
可是 我用了UNKOWN也不行啊???
高手啊 帮帮菜鸟吧
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
我以前用的是 smsAddrDestination.smsatAddressType = SMSAT_INTERNATIONAL; 发中文字符应该要用这个参数吧,具体得查下msdn文档。
另外短信发不出去的原因有很多的,你需要根据SmsSendMessage返回的错误码去查找原因,每个错误码在msdn上都有明确的错误描述。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
……
用你的代码就可以了
唉 高手就是高手啊
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表