类似项目中的MessageBox行为
MessageBox behavior in similar projects
我有两个多字节字符集MFC项目-A
和B
。在这两个代码行中,我都放置了MessageBox("hello");
代码行。
项目A
对此感到高兴——编译和运行都没有问题。这很奇怪。如果我按F12导航到它的定义,它将转到WinUser.h
行#define MessageBox MessageBoxA
。函数MessageBoxA
取4个参数。如果我追踪,我会到达wincore.cpp线
int CWnd::MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType)
最后两个参数为NULL。
项目B
编译器只报告错误而不编译。
'MessageBoxA' : function does not take 1 arguments
如何理解为什么A
项目编译时没有问题?我想这是链接器的把戏,但如何管理这样的事情呢?
Show includes
没有显示任何信息,因为wincore.cpp不是标头。
从CWnd
派生内部,MessageBox
转到CWnd::MessageBox
。
但如果您在其他类中,则不继承CWnd
。您调用全局MessageBox
,它还有一个参数,您应该将窗口句柄(或null)作为第一个参数。
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- arr[-1]在c++中的奇怪行为
- 继承期间显示未知行为的子类
- 如何在c++中使用引用实现类似python的行为
- G锁定铸造到基础上会释放模拟行为
- 在C++中对T*类型执行std::move的意外行为
- std::当在256字节边界上写入整数时,流的奇怪行为
- 不知道某个东西是否被忽略会引入未定义的行为吗
- 奇怪的构造函数行为
- 重载运算符new[]的行为取决于析构函数
- 不同语言中相同代码的不同行为
- 处理除以零会导致<csignal>意外行为
- 试图理解类对象的行为
- c++11评估顺序(未定义的行为)
- 从结构寻址时,MMAP变量的行为很奇怪
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 读取文件时运行时的未知行为
- 类似项目中的MessageBox行为
- 模仿MessageBox();弹出窗口中的行为