用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;
}
...全文
172 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);

19,502

社区成员

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

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