c++ - VERIFY 和 ATLVERIFY 有什么区别

标签 c++ atl

C++ 宏 VERIFY() 和 ATLVERIFY() 有什么区别?哪个更适合用于 COM 对象?

最佳答案

错误的报告方式有所不同。 ATLVERIFY 定义为

#ifndef ATLVERIFY
#ifdef _DEBUG
#define ATLVERIFY(expr) ATLASSERT(expr)
#else
#define ATLVERIFY(expr) (expr)
#endif // DEBUG
#endif // ATLVERIFY

ATLASSERT

#ifndef ATLASSERT
#define ATLASSERT(expr) _ASSERTE(expr)
#endif // ATLASSERT

所以它以 _ASSERTE 结尾(参见 https://msdn.microsoft.com/en-us/library/ezb1wyez.aspx )

虽然 VERIFY

#ifdef _DEBUG
#define VERIFY(f)          ASSERT(f)
#else   // _DEBUG
#define VERIFY(f)          ((void)(f))
#endif // !_DEBUG

因此它以 ASSERT 结束(参见 https://msdn.microsoft.com/en-us/library/aa297139(v=vs.60).aspx )

关于c++ - VERIFY 和 ATLVERIFY 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31990821/

相关文章:

C++:有效地在子字符串数组中查找字符串

c++ - 使用带有 ATL_BASE64_FLAG_NOPAD 标志的 ATL Base64 编码解码 base64 编码的字符串

c++ - 如何使WebBrowser控件具有透明背景?

c++ - ATL COM 类的单个实例

c++ - 如何根据数组参数项类型重载 IDL 中的函数?

c++ - C++中的JavaScript样式关闭

c++ - 使用 openCV 匹配图像

c++ - 确定斐波那契字符串的各个字母?

C++ : cin while cout

c++ - unsigned char 和 char 指针之间的区别