如何覆盖定义API函数声明?如何定义类的缺省成员函数?

boyzhang 2010-02-22 10:33:24
自己写了个CString类,发现在调用WindowsAPI函数时,

CString k="test";
MessageBox((HWND)0,k.GetBuffer(),"",(UINT)16);

必须要调用GetBuffer来返回字符串.

可是,MFC的CString却可以这样.

CString k="test";
MessageBox((HWND)0,k,"",(UINT)16);


我看了一下,

MessageBox函数的定义是

MessageBox(HWND,LPCTSTR,LPCTSTR,UINT);

两份代码都是最后调用了WinUSER.H,好像没有别的不一样.

请问,MFC是如何做到让API函数直接调用CString类的缺省成员函数的?
...全文
131 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
boyzhang 2010-02-22
  • 打赏
  • 举报
回复
哎,还要专门开个Chrome来结帐,真是服了CS DN
boyzhang 2010-02-22
  • 打赏
  • 举报
回复
晕死,cs dn又在折腾什么呀,结个帐结了半天都不行.
boyzhang 2010-02-22
  • 打赏
  • 举报
回复
原来如此,没想到,还可以Operator LPCTSTR.

M$太无耻了.

结帐.
taodm 2010-02-22
  • 打赏
  • 举报
回复
并且,此operator LPCTSTR 做法是目前被C++界普遍强烈排斥的,认为是一种很不好的编程风格。
  • 打赏
  • 举报
回复
增加成员
operator LPCTSTR

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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