xiaowei0588 发表于 2010-2-1 16:17:47

VC++串口程序错误如何解决?

参照电子工业出版社周韧研的书,发现在下面的发送函数中只有第一个字符被送出去,

请各位高手帮忙分析一下原因,谢谢!

程序用Cserial类。

void CMFCCommAssistDlg::OnBnClickedBtnSend()
{
        // TODO: 在此添加控件通知处理程序代码
        CString str;

        GetDlgItemText(IDC_EDT_SEND,str);

        m_port.Write((LPCSTR)(LPCTSTR)str);

//      用下面一句来测试,所有字符都能被正确发送!
//         m_port.Write("Hello World!");
}

lj2505 发表于 2010-2-1 16:32:19

为什么是(LPCSTR)(LPCTSTR)?

xiaowei0588 发表于 2010-2-1 19:06:15

强制类型转换

wuzhujian 发表于 2010-2-1 19:32:05

你把 m_port.Write((LPCSTR)(LPCTSTR)str);改为: m_port.Write(str.GetBuffer());试试。

zf8848 发表于 2010-2-1 22:12:44

如果用的是 ANSI 编码,程序应该没有问题,如果是 Unicode 编码就不行了,应该改为:

CString str;

GetDlgItemText(IDC_EDT_SEND,str);

CStringA strA(str);

m_port.Write((LPCSTR)strA);

xiaowei0588 发表于 2010-2-2 08:50:10

按楼上的方法处理,问题解决了,非常感谢!
页: [1]
查看完整版本: VC++串口程序错误如何解决?