读书人

关于CString 与const char*转换的有关

发布时间: 2013-01-26 13:47:02 作者: rapoo

关于CString 与const char*转换的问题,小弟求帮助
我是想利用CString的format函数来实现字符串的变量赋值,然后转成const char*。这是我的程序:
CString st;
st.Format(L"CREATE SINK CLASS 'Sink%s' LOCATE ELEMENT Sink%s_1' AT %s, %s, 0 ",i3,i3,X1,Y1);
const char* q=(LPSTR)(LPCTSTR)st;
net_writesocket(sockdsc,q);执行时出现中断;我觉得是q赋值有问题,我又尝试了 q = st.GetBuffer(sizeof(st));结果编译时出现cannot convert from 'wchar_t *' to 'char *'的错误,求各位大仙帮帮忙了。
[解决办法]
你的工程是用的多字节,还是Unicode ?
[解决办法]
const char* filename =strAviFilePath.GetBuffer(sizeof(strAviFilePath));
[解决办法]
CStringA st;
st.Format("CREATE SINK CLASS 'Sink%s' LOCATE ELEMENT Sink%s_1' AT %s, %s, 0 ",i3,i3,X1,Y1);
const char* q=st.operator LPTSTR();
[解决办法]
将widechar 转换为MultiByte

char   lpszFile[128];  
int nLen = wcslen(yourwidechar)+1;
WideCharToMultiByte(CP_ACP, 0, filename, nLen, lpszFile, 2*nLen, NULL, NULL);

读书人网 >VC/MFC

热点推荐