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'字符作为分割。(纯属自己调试使用) 

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

posted on 2010-08-30 16:22  非常笑  阅读(496)  评论(3编辑  收藏  举报

导航