搞错了,HITREEITEM  该写成HTREEITEM可是CString to  char*有什么问题呢?

解决方案 »

  1.   


    在CString变量前加上(LPCTSTR),即可转为char * 。
      

  2.   

    ExitWindows:         大仙,把你的水泵也给我过过瘾啊!!!
      

  3.   


    CString 本来就不能转换成为char *
    可以用 CString cs=str; 是因为CString重载了操作符
    可以用 cs.GetBuffer()得到真正的string.
      

  4.   

    你这么直接写当然不行了,可以用GetBuffer将其转化为LPSTR作为参数
      

  5.   


    Check ((LPCTSTR)cs);   //如下--------------------Configuration: scanner - Win32 Debug--------------------
    Compiling...
    ProcessDlg.cpp
    D:\!scanner\ProcessDlg.cpp(354) : error C2440: 'type cast' : cannot convert from 'class CString' to 'char *'
            No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    Error executing cl.exe.scanner.exe - 1 error(s), 0 warning(s)
      

  6.   

    那为什么我在socket里面可以直接使用CString?CString url="HEAD / HTTP/1.1\n\n";
    send(sockFD,url,url.GetLength(),0);//send函数定义的也是 send(SOCKET s,char* str,strlen(str),int PROT);为什么??
      

  7.   

    ExitWindows:
          
             关兄,快来QQ与我嬉戏商量~
             1819625  waiting for u!
      

  8.   

    有的函数必须要char *作参数,不能用CString,就这么简单。
    用我给你的方法,如果不能解决问题。。就送你一个大水泵!!!(现在抗旱,水泵紧俏,老兄!)
      

  9.   

    CString可以隐式转换成const char*(LPCSTR操作符)
    但是不能隐式转换为char*
      

  10.   

    D:\!scanner\ProcessDlg.cpp(354) : error C2664: 'Check' : cannot convert parameter 1 from 'const char *' to 'char *'
            Conversion loses qualifiers
    CString不是瑞士军刀....5555555~~~~~
      

  11.   

    如果要改变CString的内容,当然用LPCSTR就不合适了。
    但比如他所说send中,就应该没问题吧。
    看样子还是GetBuffer可靠啊。