关于用CSerialPort类实现串口通信的问题

zxx178239 2013-11-07 03:35:43
在连续两次调用类中的WriteToPort函数写串口时

第一次调用完WriteToPort之后,外设返回数据,
第二次调用之前需要根据返回的数据来确定WriteToPort函数发送什么数据。

我是这样写的(下边代码在同一个类中):

pDlg->SerialSendData(m_judgeMsg); //该函数中调用了WriteToPort函数
judgeText = pDlg->GetLastMsg(); //该函数获取编辑框中的最后一行内容
....
if(judgeText == "xxx")
{
....
}
.....
pDlg->SerialSendData(m_commMsg);


运行之后出现错误
中断指向了mbscmp.c类中 _VALIDATE_RETURN(s1 != NULL, EINVAL, _NLSCMPERROR);

这是什么错误,求大神指导一下,我这种用法有什么错误吗?
要修改的话该怎么改呢?
...全文
179 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-11-08
  • 打赏
  • 举报
回复
Call Stack里面从上到下列出了对应从里层到外层的函数调用历史。 双击某一行可将光标定位到此次调用的源代码或汇编指令处。
zxx178239 2013-11-07
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
双击Call Stack的下一行
> mfc100d.dll!ATL::CStringData::Release() 行 114 + 0x9 字节 堆栈信息这个是什么意思?能帮忙解释下吗? 堆栈不会看,能大概说一下吗?谢谢了
赵4老师 2013-11-07
  • 打赏
  • 举报
回复
双击Call Stack的下一行
zxx178239 2013-11-07
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
指向了 void Release() throw() { ATLASSERT( nRefs != 0 ); if( _AtlInterlockedDecrement( &nRefs ) <= 0 ) { pStringMgr->Free( this ); } } 意思好像是Release的问题,这是什么原因呢? 看不懂,可以大概解释下吗?
RabinSong 2013-11-07
  • 打赏
  • 举报
回复
单步跟踪下,看看在那一点奔溃的,立马就能发现问题
zxx178239 2013-11-07
  • 打赏
  • 举报
回复
引用 1 楼 LazyDreamHunter 的回复:
朋友,写清楚一点我才能解决你的问题
还好吧,就是用CSerialPort类进行串口编程两次调用WriteToPort函数时出现崩溃时什么原因
赵4老师 2013-11-07
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
RabinSong 2013-11-07
  • 打赏
  • 举报
回复
朋友,写清楚一点我才能解决你的问题

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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