用SmsSendMessage发送,收到乱码

wzs_wzs123 2009-01-16 04:41:50

发送到普通手机上没问题,发送到SP提供商时软吗

int SendSMSForMobile(BOOL bSendConfirmation, BOOL bUseDefaultSMSC, LPCTSTR lpszSMSC, LPCTSTR lpszRecipient, LPCTSTR lpszMessage)
{
BOOL bRet = 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)) )
{
//MessageBox(NULL,
// (LPCTSTR)LoadString(ghInstance, IDS_ERROR_SMSOPEN, 0, 0),
// (LPCTSTR)LoadString(ghInstance, IDS_CAPTION_ERROR, 0, 0),
// MB_OK | MB_ICONERROR);
return DEV_ERROR;
}

// Create the source address
if (!bUseDefaultSMSC)
{
smsaSource.smsatAddressType = SMSAT_INTERNATIONAL;
_tcsncpy(smsaSource.ptsAddress, lpszSMSC, SMS_MAX_ADDRESS_LENGTH);
}

// Create the destination address
smsaDestination.smsatAddressType = SMSAT_INTERNATIONAL;
_tcsncpy(smsaDestination.ptsAddress, lpszRecipient, SMS_MAX_ADDRESS_LENGTH);

// Set up provider specific data
memset(&tpsd, 0, sizeof(tpsd));
tpsd.dwMessageOptions = bSendConfirmation ? PS_MESSAGE_OPTION_STATUSREPORT : 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, ((bUseDefaultSMSC) ? NULL : &smsaSource),
&smsaDestination, NULL, (PBYTE) lpszMessage,
_tcslen(lpszMessage) * sizeof(TCHAR), (PBYTE) &tpsd,
sizeof(TEXT_PROVIDER_SPECIFIC_DATA), SMSDE_OPTIMAL,
SMS_OPTION_DELIVERY_NONE, &smsmidMessageID)) )
{
//MessageBox(NULL,
// (LPCTSTR)LoadString(ghInstance, IDS_SMSSENT, 0, 0),
// (LPCTSTR)LoadString(ghInstance, IDS_CAPTION_SUCCESS, 0, 0),
// MB_OK);
bRet = TRUE;
}
else
{
//MessageBox(NULL,
// (LPCTSTR)LoadString(ghInstance, IDS_ERROR_SMSSEND, 0, 0),
// (LPCTSTR)LoadString(ghInstance, IDS_CAPTION_ERROR, 0, 0),
// MB_OK | MB_ICONERROR);
bRet = FALSE;
}

// clean up
VERIFY(SUCCEEDED(SmsClose(smshHandle)));
if (bRet)
return DEV_OK;
else
return DEV_ERROR;
}
...全文
215 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzs_wzs123 2009-01-16
  • 打赏
  • 举报
回复
ultrapro:你的代码好用,谢谢了
xqhrs232 2009-01-16
  • 打赏
  • 举报
回复
单步DEBUG一下
儿大不由爷 2009-01-16
  • 打赏
  • 举报
回复
我贴的代码,没有问题
wzs_wzs123 2009-01-16
  • 打赏
  • 举报
回复
不知道啊
儿大不由爷 2009-01-16
  • 打赏
  • 举报
回复
你看看有什么差别
儿大不由爷 2009-01-16
  • 打赏
  • 举报
回复
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);
源码链接: https://pan.quark.cn/s/a4b39357ea24 微信小程序是由腾讯公司设计的一种轻量级应用开发平台,主要面向移动设备,旨在为用户带来无需下载安装即可直接使用的应用服务体验。在微信小程序的开发实践中,"模仿美团菜单 swiper分类菜单"是一项常见的技术应用,其目的是达成与美团外卖应用相似的交互模式,使用户能够轻松地浏览和挑选各种商品或服务。 在微信小程序的技术体系中,`swiper`组件属于轮播图功能模块,通常用于呈现多张图片或卡片式的切换界面,能够达成动态滑动展示不同分类菜单的功能。在模拟美团菜单的应用情境下,`swiper`组件一般与`swiper-item`组件协同工作,每一个`swiper-item`对应一个分类,用户可通过左右滑动来切换不同的分类菜单。 为了达成这样的功能,首先需要在微信小程序的`json`配置文档中引入`swiper`组件,并在`wxml`结构文档中构建相应的布局代码,将每个分类以`swiper-item`的形式进行组织。同时,需要在`wxss`样式文档中定义恰当的样式,保证分类菜单的视觉呈现符合设计规范。 接下来,我们将在`js`逻辑文档中处理`swiper`的切换逻辑,通过监听`bindchange`事件来识别当前选中的分类,并根据这一信息动态获取对应的子菜单信息。为了达成类似美团的层级菜单功能,可能还需要借助`picker`或`navigator`组件来展示二级分类或商品详情。 在开发阶段,需要关注以下关键点: 1. 数据绑定:保证数据与界面之间的双向链接准确无误,以便在选择分类时即时更新显示内容。 2. 动态加载:针对大量数据,可能需要采取异步加载机制,防止一次性加载过多内容引发性能瓶颈...

19,524

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧