CString和string的互相转换

CString->std::string 例子:
CString strMfc=“test“;
std::string strStl;
strStl=strMfc.GetBuffer(0);

std::string->CString 例子:
CString strMfc;
std::string strStl=“test“;
strMfc=strStl.c_str();

====================================

std::string s("Hello");
CString cs(s.c_str());

CString cs("Hello");
std::string s((LPCTSTR)cs);

======================================

字符数组换为字符串
using namespace std;

char a[10]="aaaabbbba";
string s(&a[0],&a[strlen(a)]);

字符串转换为字符数组

string s="aaaavvva";
char a[10];
strncpy(a,s.c_str(),s.length());

 -------------------------------------------------------------------------------

extern const 的使用问题
Test.cpp
  const CString a = "aaa";

Main.cpp
   extern const CString a; void CTestMFCDlg::OnOK() { AfxMessageBox(a); CDialog::OnOK(); }

上述代码在VC6.0下编译不通过。请问为什么?
但是把const CString a = "aaa";换成 extern const CString a = "aaa";就可以成功了
因为const 修饰之后默认的是internal link属性,你必须用extern来显示声明。
非const变量的 默认属性 file间共享的, 所以要把它限制在一个文件内,通常加static,
而const变量刚好相反,默认属性是文件内部可以见的,如果要文件间可见,需要加extern.

原文地址:https://www.cnblogs.com/xiao0913/p/4113054.html