如何将CString转换为const char *?我已经尝试了在互联网上找到的所有东西,但我仍然不能转换它们。
请帮帮忙。
谢谢。
发布于 2011-03-31 06:44:18
CString直接转换为const char *
CString temp;
temp = "Wow";
const char * foo = (LPCSTR) temp;
printf("%s", foo);将打印'foo‘
较新版本的MFC也支持GetString()方法:
CString temp;
temp = "Wow";
const char * foo = temp.GetString();
printf("%s", foo);发布于 2011-03-31 06:10:38
简而言之:使用CT2CA宏(请参见ATL and MFC String Conversion Macros)。无论你的项目的‘字符集’设置如何,这都会起作用。
长长的答案:
UNICODE预处理器符号(即,如果TCHAR为wchar_t),请使用CT2CA或CW2CA宏。发布于 2011-03-31 06:15:31
如果您的应用程序不是Unicode,您可以简单地将类型转换为const char *。如果需要可以修改的char *,请使用GetBuffer()方法。
如果您的应用程序是Unicode,并且您确实想要一个char *,那么您需要转换它。(您可以使用像MultiByteToWideChar()这样的函数。)
https://stackoverflow.com/questions/5493017
复制相似问题