axMSComm1.Output”引发了“System.Runtime.InteropServices.COMException”类型的异常

eldxiaoxue 2011-08-25 06:24:26
vs 2003 c# 使用axMSComm1控件发送短信调试时不报错,但在快速监视里发现axMSComm1.Output”引发了“System.Runtime.InteropServices.COMException”类型的异常,造成短信发送不成功。求高手解决。

代码如下:
private void SendSms(string Smsc_Number,string Dest_Number,string Sms_Text)//发送函数
{
string pdu=""; //开始合成 PDU 串
pdu+="089168";
//SMSC中心号码补F凑成偶数
char[] tmpSmscNumber=(Smsc_Number+"F").ToCharArray();
for(int i=0;i<tmpSmscNumber.Length;i+=2) //字符两两对调
{
pdu+=tmpSmscNumber[i+1].ToString();
pdu+=tmpSmscNumber[i].ToString();
}
pdu+="11000D9168";
char[] tmpDestNumber=(Dest_Number+"F").ToCharArray();//对方号码
for(int i=0;i<tmpDestNumber.Length;i+=2) //字符两两对调
{
pdu+=tmpDestNumber[i+1].ToString();
pdu+=tmpDestNumber[i].ToString();
}
pdu+="000800"; //08 表示采用 UCS2 编码
//短信正文转为Unicode
byte[] tmpSmsText=Encoding.Unicode.GetBytes(Sms_Text);
pdu+=tmpSmsText.Length.ToString("X2"); //正文内容长度
for(int i=0;i<tmpSmsText.Length;i+=2) //高低字节对调
{
pdu+=tmpSmsText[i+1].ToString("X2");//("X2")转为16进制
pdu+=tmpSmsText[i].ToString("X2");
} //PDU串 完成
int tmpLength=(pdu.Length-18)/2;//除去SMSC段长度
//向串口发Send an SMS 命令
this.COM1.Output="AT+CMGC="+tmpLength+(char)13;
Thread.Sleep(500);//延时 0.5 秒
this.COM1.Output=pdu;//输出 PDU 串
this.COM1.Output=((char)26).ToString();//结束
Thread.Sleep(1500);//延时 1.5 秒
}
...全文
219 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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