主题:[求助]CString如何转换为LPCSTR?
有一个CString类型的量str,要把它作为函数Write的第一个参数,Write要求第一个参数
是LPCSTR类型,因此需要把CString转化为LPCSTR类型。试了下面几种方法:
1. (LPCSTR)str,结果提示无法从CString转LPCSTR;
2. (LPCTSTR)str作为参数,结果提示Write的第一个参数无法从LPCTSTR转LPCSTR;
3. (LPCSTR)(LPCTSTR)str,结果str转换后只剩第一个字符了,比如原来str="hello",转换后只剩"h"。
4.网上有很多人说用CString的GetBuffer方法,如下:
CString str;
GetDlgItemText(IDC_EDT_SEND,str);
int nLength=str.GetLength();
LPCSTR lpszBuf=str.GetBuffer(nLength);
m_port.Write(lpszBuf);
结果指向倒数第二行,报错说“无法从“wchar_t *”转换为“LPCSTR””。
到底该怎么做呢?请各位赐教。
是LPCSTR类型,因此需要把CString转化为LPCSTR类型。试了下面几种方法:
1. (LPCSTR)str,结果提示无法从CString转LPCSTR;
2. (LPCTSTR)str作为参数,结果提示Write的第一个参数无法从LPCTSTR转LPCSTR;
3. (LPCSTR)(LPCTSTR)str,结果str转换后只剩第一个字符了,比如原来str="hello",转换后只剩"h"。
4.网上有很多人说用CString的GetBuffer方法,如下:
CString str;
GetDlgItemText(IDC_EDT_SEND,str);
int nLength=str.GetLength();
LPCSTR lpszBuf=str.GetBuffer(nLength);
m_port.Write(lpszBuf);
结果指向倒数第二行,报错说“无法从“wchar_t *”转换为“LPCSTR””。
到底该怎么做呢?请各位赐教。