assert增强宏的实现
2024-09-25 14:48:31
作者:朱金灿
来源:http://blog.csdn.net/clever101
标准c的assert宏和MFC的ASSERT宏都不支持输出太多的信息。今天实现了一个assert增强宏,可以输出更多的出错信息。具体代码如下:
#ifdef _DEBUG #ifdef UNICODE #define XASSERT(exp_, msgw_) _ASSERT_EXPR((exp_), (std::wstring(L#exp_)+L"\r\nMessage:"+(msgw_)).c_str()) #else #define _ASSERT_EXPR_ANSI(expr, msg) \
(void) ((!!(expr)) || \
(1 != _CrtDbgReport(_CRT_ASSERT,(__FILE__), __LINE__, NULL, msg)) || \
(_CrtDbgBreak(), 0)) #define XASSERT(exp_, msgw_) _ASSERT_EXPR_ANSI((exp_),(std::string(#exp_)+std::string("\r\n Message:")+std::string(msgw_)).c_str()) #endif #else #define XASSERT(exp_, msgw_) #endif
测试代码:
TCHAR* psz = _T("错误的表达式");
XASSERT(false,psz);
效果图如下:
参考文献:
最新文章
- REST服务介绍
- gRaphael——JavaScript 矢量图表库:两行代码实现精美图表
- JavaScript中,本周、上周、本月、上月日期判断
- SQL Server中的事务日志管理(9/9):监控事务日志
- IIS 部署WCF 4.0
- Android之ListView——ArrayAdapter的学习与总结
- table表格实现点击修改 PHP同步数据库 排序
- Begin Andriod -- 安装android开发环境
- Linux shell用法和技巧(转)
- DiskFileUpload类
- fedora 挂载 小米手机 (估计其它android设备也是类似操作)
- TypeScript入门知识五(面向对象特性一)
- 本地windows下搭建git的本地服务器
- MySQL常用SQL语句/函数/存储过程
- 16. Spring boot 错误页面
- android使用ARouter跳转activity(阿里巴巴开源的)
- Delphi来实现一个IP地址输入控件
- 协程(Coroutine)并不是真正的多线程
- RobotFramework+Selenium2+Appium环境搭建
- 51nod1079
热门文章
- js之insertBefore(newElement,oldElement)
- 使用tinyxml2库解析xml
- Android框架-Volley(二)
- 使用google API之前需要對input 做什麼 安全性的處理?
- IHttpHandler的学习(0)
- c# 的类成员
- linux傻瓜式安装lnmp
- bzoj1270 BeijingWc2008 雷涛的小猫 DP
- [Recompose] Refactor React Render Props to Streaming Props with RxJS and Recompose
- vector和list容器之间的复制