读书人

字符转换,该怎么处理

发布时间: 2012-03-22 17:43:57 作者: rapoo

字符转换
UNICODE工程下
我在自定义消息传递一个参数 参数为:cstring类型
char* szText = new char[200];
ZeroMemory(szText, 200);

strcpy(szText,strDevName.GetBuffer(0));
strText.ReleaseBuffer();

AfxGetMainWnd()->PostMessage( WM_DEV_NOTONLINE, (WPARAM)szText, strlen(szText)+1 );

提示错误:
error C2664: “strcpy” : 不能将参数 2 从“ATL::CSimpleStringT<BaseType>::PXSTR”转换为“const char *”
在消息函数中又怎样获取szText;
请各位指点下,脑袋都晕了!!!!!
谢谢了!!!!!!

[解决办法]
char* szText = new char[200];
ZeroMemory(szText, 200);

strcpy(szText,strDevName.GetBuffer(0));
strText.ReleaseBuffer();

改为
TCHAR* szText = new TCHAR[200];
ZeroMemory(szText, 200);

_tcscpy(szText,strDevName.GetBuffer(0));
strText.ReleaseBuffer();


[解决办法]
char* szText = new char[200];
ZeroMemory(szText, 200);
const char* ch = (LPCTSTR)str;

strcpy(szText,ch);

[解决办法]
int strLength = str.GetLength() + 1;
char *p = new char[strLength];
strncpy(p,str, strLength);

[解决办法]
Example
msdn
The following example demonstrates the use of CString::GetBuffer.

// example for CString::GetBuffer
CString s( "abcd" );
#ifdef _DEBUG
afxDump << "CString s " << s << "\n";
#endif
LPTSTR p = s.GetBuffer( 10 );
strcpy( p, "Hello" ); // directly access CString buffer
s.ReleaseBuffer( );
#ifdef _DEBUG
afxDump << "CString s " << s << "\n";
#endif


[解决办法]
char* szText = new char[200];
ZeroMemory(szText, 200);
strcpy_s(szText,200,"aaaa");

读书人网 >VC/MFC

热点推荐