难怪.net这么重视类型转换,做的那么好
vc里类型转换根本不知道用什么啊!!!LPCWSTR 类型的字符串怎么转换成string?
或转成char *也行

解决方案 »

  1.   

    用CString的构造函数
    CString str(lpsz);
      

  2.   

    CString str;
    str.Format();
    format()用法和printf一样
      

  3.   

    CString 转化成 char* 之一:强制类型转换为 LPCTSTR;
      LPCTSTR 操作符(或者更明确地说就是 TCHAR * 操作符)在 CString 类中被重载了,该操作符的定义是返回缓冲区的地址,因此,如果你需要一个指向 CString 的 字符串指针的话,可以这样做:
    CString s("GrayCat");
    LPCTSTR p = s;
    ////////////////////////
    如果你要格式化字符串怎么办呢?
    CString graycat("GrayCat");
    CString s;
    s.Format("Mew! I love %s", graycat);CString转化成char* 之二:使用 CString 对象的 GetBuffer 方法;
    如果你需要修改 CString 中的内容,它有一个特殊的方法可以使用,那就是 GetBuffer,它的作用是返回一个可写的缓冲指针。 如果你只是打算修改字符或者截短字符串,你完全可以这样做:
    CString s(_T("File.ext"));
    LPTSTR p = s.GetBuffer();
    LPTSTR dot = strchr(p, ''.''); // OK, should have used s.Find...
    if(p != NULL)
    *p = _T(''\0'');
    s.ReleaseBuffer();详见VC知识库文章:CString 操作指南
      

  4.   

    是很麻烦,看MSDN吧,首先要搞清楚定义,还有编译环境,很多时候就是同一种类型(typedef),
    系统提供了丰富的函数,作为类的数据类型通常有操作符,可能令人疑惑的究竟该使用何种方式转换:(
      

  5.   

    楼主:
    三楼的说得不错,VC知识库有这样一篇文章,你仔细看看,相信你的问题可以解决了.
    位置:http://www.vckbase.com/document/viewdoc/?id=1094
      

  6.   

    en,我把每个宽字符强制转成了char类型,可以正常显示字串
    可以结贴了,只是现在没法进入管理。。