在MFC对话框程序中 我在实现文件包含了String的头文件 为什么定义String str 后说string未声明标示符 str也是未声明标示符 ,这是怎么回事?求大侠们 解惑 再给我个CString转String的完整代码哇  在此先谢过

解决方案 »

  1.   

    CString sPermission="字符串";
    string sPms(sPermission.GetBuffer(sPermission.GetLength()));//cstring to string
      

  2.   

     char* psz = “joise”;
      CString cstr( psz );
      string str( cstr );
      

  3.   

    加上
    #include <iostream>
    using namespace std;
      

  4.   

    并且注意是string,不是String,注意大小写
      

  5.   

    namespace的问题,using namespace std;或者std::string str....
      

  6.   

    namespace的问题,using namespace std;或者std::string str....
      

  7.   

    估计是大小写问题,CString 转换成string 
    非unicode下比较简单
    string str = (LPCTSTR)cstr; 强转以下就行了
    unicode下转换很麻烦。网上有相应的函数。
    可以参照这个
    http://www.cnblogs.com/likwo/archive/2010/02/22/1671065.html
      

  8.   

       强烈建议编写程序的时候不要使用unicode编码,否则各种转换会让人疯掉的
      

  9.   

    第一:使用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*
      

  10.   

    [Quote=引用 3 楼 zwfgdlc 的回复:]
    加上C/C++ code
    #include <iostream>
    using namespace std;
    嘘 ……哈哈