m_SendData.SetAt(7,m_ReceiveData.GetAt(0))这样行吗

kxywnljz 2011-01-20 10:24:04
m_SendData.SetAt(7,m_ReceiveData.GetAt(0))这样行吗,高手请教啊!!
m_SendData="EB 90 EB 90 0B 90 01 C2";
char x='7';
m_SendData.SetAt(7,x);
以上正确可以运行,但是如果改为这样,
m_SendData="EB 90 EB 90 0B 90 01 C2";
char X=m_ReceiveData.GetAt(0);
m_SendData.SetAt(7,X);



m_SendData="EB 90 EB 90 0B 90 01 C2";
m_SendData.SetAt(7,m_ReceiveData.GetAt(0)); //m_ReceiveData为CString类,可是以上那样为什么错了呢????还望高手指点,怎样修改才好????

编译均通过,可是一接收数据就弹出错误对话框!!!!
我的想法就是从接收到的数据中某个位置上得到的数据填进要发送的数据中。谢谢!
...全文
158 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxqinge 2011-01-21
  • 打赏
  • 举报
回复
SetAt表示在某个位置插入某个字符
另外我语文没学好,“我的想法就是从接收到的数据中某个位置上得到的数据填进要发送的数据中。”这句话好难理解
kxywnljz 2011-01-21
  • 打赏
  • 举报
回复
谢谢萧竹的一直帮助,我的问题以解决,谢谢你!!
我在做一个串口通信模拟设备来自动应答上位机,上位机发送采集第一个模块的指令,我就回复第一个采集模块信息给他,所以我是从他的命令中读取是要采集哪个模块,再将这个字符(第几个采集模块)填入到要发给他的对应(回复是哪个采集模块)的命令中。
在此让你费解了!!
很是谢谢你!!!

另外补充m_SendData="EB 90 EB 90 0B 90 01 C2";
char X=m_ReceiveData.GetAt(0);
m_SendData.SetAt(7,X);
这个也是正确的!!!


至于
m_SendData="EB 90 EB 90 0B 90 01 C2";
m_SendData.SetAt(7,m_ReceiveData.GetAt(0)); //感觉这样也是正确的啊

貌似不行,我没时间去再试他,有时间慢慢理会!!!
多谢了
sxqinge 2011-01-20
  • 打赏
  • 举报
回复
说实话,你这样设置很不合理
因为你想找个“2C”出来,如果碰到这样的数据呢“02C4”?
所以你应该是按我先前给你介绍的方法,用数组来存储接受到的数据。
另外我不知道你到底想干什么,为什么就要用SetAt来把第7位给替代了呢?把第二个“EB”中的“B”换为m_ReceiveData第一个字符???不理解
kxywnljz 2011-01-20
  • 打赏
  • 举报
回复
大侠指点啊
kxywnljz 2011-01-20
  • 打赏
  • 举报
回复
效果还是一样,这是为什么呢???很奇怪啊,呜呜呜呜呜!!!!!!!!!!!!!!
sxqinge 2011-01-20
  • 打赏
  • 举报
回复
把X定义为:TCHAR X
试试

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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