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,请问怎么改程序
...全文
63 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
7楼的代码运行之后 无法接收到数据啊!!

//没有ReadFile,当然没有数据...
回复
qiangweilei 2008-11-29
m_Receive 是一个编辑框的变量,来接收数据。7楼的代码运行之后 无法接收到数据啊!!
回复
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;
回复

//给段代码,参考一下
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是怎么得到的哦?
回复
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*
回复
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
关注.....
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-11-29 02:30
社区公告

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