24小时热门版块排行榜    

CyRhmU.jpeg
查看: 997  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhangqinfu

新虫 (初入文坛)

[交流] 【求助】用MSComm控件编程DEBUG生成的程序只能收数据不能发数据?已有5人参与

本人初学VC++,想用MSComm控件编一个简单串口通信的程序,按照龚老师书上的例子写了一个程序,在DEBUG下生成的程序只能发数据不能收数据。收数据时弹出窗口:"0x5f5624b0"指令引用的"0x0000205d"内存。该内存不能为"read".但是在release下生成的程序可以运行。请高手指点,如何在DEBUG也能正常运行呀。串口的响应函数如下:
void CSCommTestDlg::OnComm()
{
        // TODO: Add your control notification handler code here
        VARIANT variant_inp;
        COleSafeArray safearray_inp;
        LONG len,k;
        BYTE rxdata[2048];
        CString strtemp;
        if(m_ctrlComm.GetCommEvent()==2)
        {
                variant_inp=m_ctrlComm.GetInput();
                safearray_inp=variant_inp;
                len=safearray_inp.GetOneDimSize();
                for(k=0;k                         safearray_inp.GetElement(&k,rxdata+k);
                for(k=0;k                 {
                        BYTE bt=*(char*)(rxdata+k);
                        strtemp.Format("%c",bt);
                        m_strEditRXData+=strtemp;
                }
        }
        UpdateData(FALSE);
       
}
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangqinfu

新虫 (初入文坛)

引用回帖:
Originally posted by simthhuang at 2010-07-04 22:41:05:
错误不在mscomm,而在VARIANT、和COLESAFEARRAY的使用上。改成如下形式就OK了:
void CMsCommDlg::OnOnCommMscomm1()
{
        // TODO: Add your control notification handler code here
        COleVariant variant_i ...

改成你的形式之后,显示的是r?r,这是怎么会是呀?
4楼2010-07-09 17:14:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhangqinfu 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见