紧急求助:BCB中使用一个短信控件Sms1,但在执行Sms1->ConnectModem(wchar_t *,long)方法时总出现AV错误!!
BCB6.0,导入了一个短信控件Sms1,据说此控件是用VB写的。
导入完成后在ActiveX栏中增加了一个手机图标,将此控件拖到Form1上,
根据Sms1控件的接口说明,要实现与接在串口的GSM Modem的连接,需调用ConnectModem(wchar_t *,long)方法,其中参数1为串口号(即COM1或COM2....),参数2为连接速率(如9600...),返回值若为1则说明连接成功,为0则不成功。
开始的时候对wchar_t类型不太了解,经查阅得知可通过如下方式由String得到wchar_t*:
wchar_t *wch=L"COM1";
因此,在Form1的OnShow事件中加入如下代码:
void _fastcall TForm1::FormShow(TObject *Sender)
{
if(Sms1->ConnectModem(L"COM1",9600)==1)
ShowMessage("成功");
else
ShowMessage("失败");
}
保存后编译成功。
但运行时问题出现了:每次执行到ConnectModem这一行时总会报错:Access violation at address 77EA9732,Read of address 00686000.
对于其中的wchar_t *类型的参数曾试用多种转换方式:
L"COM1"
WideString("COM1").c_bstr()
...
但问题依旧。
特请大家帮忙找一下原因,先致谢意!!