vs2010 中,c++:Error 1 error C2440: 'static_cast' : cannot convert from 'CString' to 'char *'

这个问题如何解决??... 这个问题如何解决?? 展开
 我来答
百度网友8f83ae5
2012-12-27 · TA获得超过263个赞
知道小有建树答主
回答量:144
采纳率:100%
帮助的人:140万
展开全部
本人收藏的CString to char *的转换方法,供你参考

若将CString类转换成char*(LPSTR)类型,常常使用下列三种方法:

方法一,使用强制转换。例如:
CString theString( “This is a test” );
LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString;

方法二,使用strcpy。例如:
CString theString( “This is a test” );
LPTSTR lpsz = new TCHAR[theString.GetLength()+1];
_tcscpy(lpsz, theString);
需要说明的是,strcpy(或可移值Unicode/MBCS的_tcscpy)的第二个参数是 const wchar_t* (Unicode)或const char* (ANSI),系统编译器将会自动对其进行转换。

方法三,使用CString::GetBuffer。例如:
CString s(_T(”This is a test “));
LPTSTR p = s.GetBuffer();
// 在这里添加使用p的代码
if(p != NULL) *p = _T(’/0′);
s.ReleaseBuffer();
// 使用完后及时释放,以便能使用其它的CString成员函数。
望采纳。
百度网友61311ba
2012-12-27 · TA获得超过882个赞
知道小有建树答主
回答量:1386
采纳率:0%
帮助的人:874万
展开全部
楼上说的很全 建议第三种 GetBuff 方法.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhujun007007
2012-12-27 · TA获得超过127个赞
知道答主
回答量:110
采纳率:0%
帮助的人:91.3万
展开全部
CString a;
char * b;
b = (LPSTR)(LPCTSTR)a;
如上,给分~
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式