见鬼了,我正宗的MFC不认 HITREEITEM !!CString和char*不能直接操作 !!

111222 2001-08-01 08:54:05
HITREEITEM SelectedItem;

error C2146: syntax error : missing ';' before identifier 'SelectedItem'
error C2501: 'HITREEITEM' : missing storage-class or type specifiers
error C2501: 'SelectedItem' : missing storage-class or type specifiers


void check(char* str);

CString cs = "some string";
check( cs );
error C2664: 'Check' : cannot convert parameter 1 from 'class CString' to 'char *'
...全文
199 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ExitWindows 2001-08-01
  • 打赏
  • 举报
回复
111222:
你不说大家也知道啊,重复这么多遍干嘛。










(开个玩笑。)
ExitWindows 2001-08-01
  • 打赏
  • 举报
回复
如果要改变CString的内容,当然用LPCSTR就不合适了。
但比如他所说send中,就应该没问题吧。
看样子还是GetBuffer可靠啊。
111222 2001-08-01
  • 打赏
  • 举报
回复
我真是白痴,操作符弄反了.....55555555555

我是白痴
我是白痴
我是白痴
我是白痴
我是白痴
我是白痴
我是白痴
我是白痴我是白痴我是白痴我是白痴我是白痴我是白痴我是白痴我是白痴我是白痴我是白痴我是白痴我是白痴我是白痴我是白痴
111222 2001-08-01
  • 打赏
  • 举报
回复
D:\!scanner\ProcessDlg.cpp(354) : error C2664: 'Check' : cannot convert parameter 1 from 'const char *' to 'char *'
Conversion loses qualifiers


CString不是瑞士军刀....5555555~~~~~
Kevin_qing 2001-08-01
  • 打赏
  • 举报
回复
CString可以隐式转换成const char*(LPCSTR操作符)
但是不能隐式转换为char*
ExitWindows 2001-08-01
  • 打赏
  • 举报
回复
有的函数必须要char *作参数,不能用CString,就这么简单。
用我给你的方法,如果不能解决问题。。。。。。。。











就送你一个大水泵!!!(现在抗旱,水泵紧俏,老兄!)
111222 2001-08-01
  • 打赏
  • 举报
回复
ExitWindows:

关兄,快来QQ与我嬉戏商量~
1819625 waiting for u!
ExitWindows 2001-08-01
  • 打赏
  • 举报
回复
(故作迷茫状)什么水泵?


(悄悄)此地不宜久谈。
111222 2001-08-01
  • 打赏
  • 举报
回复


那为什么我在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);

为什么??
111222 2001-08-01
  • 打赏
  • 举报
回复

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)
panda_w 2001-08-01
  • 打赏
  • 举报
回复
你这么直接写当然不行了,可以用GetBuffer将其转化为LPSTR作为参数
seedundersnow 2001-08-01
  • 打赏
  • 举报
回复

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

111222 2001-08-01
  • 打赏
  • 举报
回复
ExitWindows:

大仙,把你的水泵也给我过过瘾啊!!!
ExitWindows 2001-08-01
  • 打赏
  • 举报
回复

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

zb_china 2001-08-01
  • 打赏
  • 举报
回复
GetBuffer
zb_china 2001-08-01
  • 打赏
  • 举报
回复
HTREEITEM
昏招
111222 2001-08-01
  • 打赏
  • 举报
回复
搞错了,HITREEITEM 该写成HTREEITEM

可是CString to char*有什么问题呢?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧