首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >问题:如何在C++ MFC中将CString转换为const char *

问题:如何在C++ MFC中将CString转换为const char *
EN

Stack Overflow用户
提问于 2011-03-31 06:05:03
回答 5查看 25K关注 0票数 3

如何将CString转换为const char *?我已经尝试了在互联网上找到的所有东西,但我仍然不能转换它们。

请帮帮忙。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-31 06:44:18

CString直接转换为const char *

代码语言:javascript
运行
复制
CString temp;
temp = "Wow";
const char * foo = (LPCSTR) temp;
printf("%s", foo);

将打印'foo‘

较新版本的MFC也支持GetString()方法:

代码语言:javascript
运行
复制
CString temp;
temp = "Wow";
const char * foo = temp.GetString();
printf("%s", foo);
票数 8
EN

Stack Overflow用户

发布于 2011-03-31 06:10:38

简而言之:使用CT2CA宏(请参见ATL and MFC String Conversion Macros)。无论你的项目的‘字符集’设置如何,这都会起作用。

长长的答案:

  • 如果已定义UNICODE预处理器符号(即,如果TCHARwchar_t),请使用CT2CACW2CA宏。
  • 如果未定义(即,如果D11为D12),则CString已具有隐式转换为D13的运算符(请参见
票数 3
EN

Stack Overflow用户

发布于 2011-03-31 06:15:31

如果您的应用程序不是Unicode,您可以简单地将类型转换为const char *。如果需要可以修改的char *,请使用GetBuffer()方法。

如果您的应用程序是Unicode,并且您确实想要一个char *,那么您需要转换它。(您可以使用像MultiByteToWideChar()这样的函数。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5493017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档