EVC 下串口发送数据出现乱码

qiangweilei 2008-11-29 02:30:47
CString K("1001011");//K是可变的

CString *psendbuf=new CString [8];
for(int i=0;i<8;i++)
psendbuf[i]=K[i];
WriteFile(m_hComm, psendbuf, 8, &dwactlen, NULL);
delete[] psendbuf;

if(m_Receive.CompareNoCase(K)==0)
{
......
}
发送的时候出现收到的是乱码,
因为K是变化的,所以希望 CompareNoCase()函数内的用到K,请问怎么改程序
...全文
91 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
一条晚起的虫 2008-11-29
  • 打赏
  • 举报
回复
7楼的代码运行之后 无法接收到数据啊!!

//没有ReadFile,当然没有数据...
qiangweilei 2008-11-29
  • 打赏
  • 举报
回复
m_Receive 是一个编辑框的变量,来接收数据。7楼的代码运行之后 无法接收到数据啊!!
一条晚起的虫 2008-11-29
  • 打赏
  • 举报
回复
CString K("1001011");
int length = K.GetLength();
TCHAR* psendbuf;
psendbuf = new TCHAR[length + 1];
wcscpy(psendbuf, K.GetBuffer(0)); //忘了给psendbuf赋值了...
K.ReleaseBuffer(0);
WriteFile(m_hComm, psendbuf, length * sizeof(TCHAR), &dwactlen, NULL);
delete[] psendbuf;
一条晚起的虫 2008-11-29
  • 打赏
  • 举报
回复

//给段代码,参考一下
CString K("1001011");
int length = K.GetLength();
TCHAR* psendbuf;
pSendBuf = new TCHAR[length]
WriteFile(m_hComm, psendbuf, length * sizeof(TCHAR), &dwactlen, NULL);
delete[] psendbuf;

if(m_Receive.CompareNoCase(K)==0)
{
......
}

//另:m_Receive是怎么得到的哦?
一条晚起的虫 2008-11-29
  • 打赏
  • 举报
回复
CString *psendbuf=new CString [8];
//这是一个8维的CString数组
//CString简单点看就是一个字符串数组char*(当然,实际上它是一个类,包括了很多方法)

字符串比较不是非要用CString::CompareNoCase()方法
还有 _wcsicmp等等
而且,你试过CString::CompareNoCase()方法的参数不能用wchar_t *?

qiangweilei 2008-11-29
  • 打赏
  • 举报
回复
程序是往串口发送数据, *psendbuf指针首先指向了8字符串的首地址,因为K有7个字符,所以用FOR循环,WriteFile是向串口发数的函数。
4楼朋友,改成 WriteFile(m_hComm, psendbuf, 8*sizeof(TCHAR), &dwactlen, NULL) 还是乱码啊
用char 是可以,但在比较时if(m_Receive.CompareNoCase(K)==0) 时CompareNoCase()里面的必须是CString,或直接用字符串,但因为现在K是变的,所以用 char 不行啊
rookieme 2008-11-29
  • 打赏
  • 举报
回复
WriteFile(m_hComm, psendbuf, 8*sizeof(TCHAR), &dwactlen, NULL);
或者不要使用CString,全部使用char*
一条晚起的虫 2008-11-29
  • 打赏
  • 举报
回复
EVC是unicode编码
程序看不懂要做什么
for(int i=0;i <8;i++)
psendbuf[i]=K[i];
1、WriteFile(m_hComm, psendbuf, 8, &dwactlen, NULL);
//既然只发送8个字节(4个unicode字符),for循环又有何用?
2、因为K是变化的,所以希望 CompareNoCase()函数内的用到K
//现在K已经是变量了,还要怎么样?
zaodt 2008-11-29
  • 打赏
  • 举报
回复
eVC 中使用 UNICODE 字符集,每个字符占用2个字节。
jinlingzwp 2008-11-29
  • 打赏
  • 举报
回复
关注.....

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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