CString与char*转换问题(希望有人能解答下)

老掉牙的问题,但是最近在网上看了许多资料,在环境里实现结果却不如我意。

1 CString cstr("hello world!");
2 char text[100];
3 strncpy(text,(LPCTSTR)cstr,sizeof(text));

但是在VS2005中还是提示如下的错误:

  

这个问题希望有人能解答下!

 我自己琢磨出了这种转换形式:

代码
 1 CString cstr("helloworld");
 2 char* pChar = (char *)(LPCTSTR)cstr;
 3 int l = strFileName.GetLength();
 4 char* pCharArray = new char[l];
 5 for (int i = 0; i < l ; i++)
 6 {
 7     pCharArray[i] = *pChar;
 8     pChar+=2;
 9 }
10 pCharArray[l] = '\0';
11 
12 //...使用pCharArray
13 
14 delete[] pCharArray;
15 pCharArray = NULL;

其中pChar指针之所以每次循环移两个,是由于CString中每个字符后面都有一个'0'字符作为分割。(纯属自己调试使用) 

这里面的问题是不能转换中文。 

原文地址:https://www.cnblogs.com/wxfasdic/p/1812695.html