http://www.csdn.net/Develop/Read_Article.asp?id=12365
去看上面的东西。。char* p=(LPSTR)(LPCTSTR) str;

解决方案 »

  1.   

    定义了char* aa的变量,现在有一个CString的变量bb,怎样把bb的值赋给aa呢? 回复人: ydogg(灰毛兔) (2001-8-10 12:27:23) 得0分 
    1.aa=bb.GetBuffer(bb.GetLenth());//第一种方法
    2.aa= (LPSTR)(LPCTSTR)bb; //第二种方法 
    回复人: zhizhi() (2001-8-10 13:16:23) 得0分 
    aa= (char *)(LPCTSTR)bb,hehe 
      

  2.   

    CString::GetBuffer 
    Returns a pointer to the internal character buffer for the CString object. 不好CString str = ".....";
    int nSize = str.GetLength()+1;
    char * p = new char[nSize];
    memset(p,0, nSize * sizeof(char));strcpy(p,str);
      

  3.   

    我也贴一个:其它数据类型转换为字符串1。短整型(int)
    itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制
    itoa(i,temp,2); ///按二进制方式转换 
    2。长整型(long)
    ltoa(l,temp,10); 
    3。浮点数(float,double)
    用fcvt可以完成转换,这是MSDN中的例子:
    int decimal, sign; 
    char *buffer; 
    double source = 3.1415926535; 
    buffer = _fcvt( source, 7, &decimal, &sign ); 
    运行结果:source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0
    decimal表示小数点的位置,sign表示符号:0为正数,1为负数 
    4。CString变量
    str = "2008北京奥运";
    buf = (LPSTR)(LPCTSTR)str; 
    5。BSTR变量
    BSTR bstrValue = ::SysAllocString(L"程序员"); 
    char * buf = _com_util::ConvertBSTRToString(bstrValue); 
    SysFreeString(bstrValue); 
    AfxMessageBox(buf); 
    delete(buf); 
    6。CComBSTR变量
    CComBSTR bstrVar("test"); 
    char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str); 
    AfxMessageBox(buf); 
    delete(buf); 7。_bstr_t变量
    _bstr_t类型是对BSTR的封装,因为已经重载了=操作符,所以很容易使用
    _bstr_t bstrVar("test"); 
    const char *buf = bstrVar;///不要修改buf中的内容 
    AfxMessageBox(buf); 
    8。通用方法(针对非COM数据类型)
    用sprintf完成转换
    char  buffer[200];
    char  c = '1';
    int   i = 35;
    long  j = 1000;
    float f = 1.7320534f;
    sprintf( buffer, "%c",c);
    sprintf( buffer, "%d",i);
    sprintf( buffer, "%d",j);
    sprintf( buffer, "%f",f);
    (是转载)
    你的问题可以用4。
      

  4.   

    nano_2002(飞天外) :
        好贴。谢谢