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/