hur.cn - 华软网

 热门搜索

MFC 中 CString转 String

  作者:未知    来源:网络    更新时间:2011/9/22
  在MFC对话框程序中 我在实现文件包含了String的头文件 为什么定义String str 后说string未声明标示符 str也是未声明标示符 ,这是怎么回事?求大侠们 解惑 再给我个CString转String的完整代码哇  在此先谢过
---华软 网友回答---
CString sPermission="字符串";
string sPms(sPermission.GetBuffer(sPermission.GetLength()));//cstring to string
---华软网友回复---
 char* psz = “joise”;
  CString cstr( psz );
  string str( cstr );
---华软网友回复---
加上
C++">#include <iostream>
using namespace std;

---华软网友回复---
并且注意是string,不是String,注意大小写
引用 3 楼 zwfgdlc 的回复:
加上

C/C++ code

#include <iostream>
using namespace std;

---华软网友回复---
namespace的问题,using namespace std;

或者

std::string str....

---华软网友回复---
namespace的问题,using namespace std;

或者

std::string str....

---华软网友回复---
估计是大小写问题,CString 转换成string 
非unicode下比较简单
string str = (LPCTSTR)cstr; 强转以下就行了
unicode下转换很麻烦。网上有相应的函数。
可以参照这个
http://www.cnblogs.com/likwo/archive/2010/02/22/1671065.html
---华软网友回复---
   强烈建议编写程序的时候不要使用unicode编码,否则各种转换会让人疯掉的
---华软网友回复---
第一:使用string除了要包含头文件#include <string>以外
还必须using std::string;或者using namespace std;

因为string这个是定义在namespace std{};里面的.
不把命名空间包含进来编译器找不到.

或者也可以在定义的时候
std::string str;
str.c_str();

第二:CString 转string
最简单的就一句
CString cs_str("测试数据");
string std_str(cs_str);//std_str = "测试数据";
也可以直接
std_str = cs_str;//std_str = "测试数据";
因为CString会在使用时自动被强转成const char*
---华软网友回复---
[Quote=引用 3 楼 zwfgdlc 的回复:]
加上

C/C++ code
#include <iostream>
using namespace std;
嘘 ……哈哈
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。