当前位置:首页 > 开发 > 编程语言 > C/C++ > 正文

(Visual studio)C++ 中assert带自定义的消息

发表于: 2012-11-23   作者:cherishLC   来源:转载   浏览次数:
摘要: 直接贴文件如下: #ifdef NDEBUG #define assert(_Expression) ((void)0) #define assertMsg(_Expression, _Msg) ((void)0) #else #include <crtdefs.h> #include "assert.h" #define as
直接贴文件如下:
#ifdef  NDEBUG
#define assert(_Expression)     ((void)0)
#define assertMsg(_Expression, _Msg) ((void)0)
#else
	#include <crtdefs.h>
	#include "assert.h"
	#define assert(_Expression) (void)( (!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0) )
	#define assertMsg(_Expression, _Msg) (void)( (!!(_Expression)) || (_wassert(_CRT_WIDE(_Msg), _CRT_WIDE(__FILE__), __LINE__), 0) )
#endif

参考自: http://social.msdn.microsoft.com/forums/en-US/vclanguage/thread/828b708c-e186-4774-b0fc-f45ddf49163b

另有一种不太好看的:
assert(a == b && "A is not equal to B");

参考自: http://stackoverflow.com/questions/3692954/add-custom-messages-in-assert

(Visual studio)C++ 中assert带自定义的消息

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
安装完成devexpress后启动vs提示 devenv.exe - assert failure 第一种在博客园找到的解决方案:  
目前的项目依赖于很多第三方库,每次要再一个新的环境编译/运行,都要花很长时间先编译/安装各种第
  每个公司都有自己的编码标准,其中最基本的一条就是文件要有文件头,但是Visual Studio中默认的
由于将系统升级到了Windows 8, 而Windows 8 SDK已经集成了DirectX SDK,且不包含DX9及之前的头文件
开发中经常会遇到各种的 TODO... 例如 这个项目开发了一半,被领导召唤去另外一个优先级更高的项目
在上一篇文章中,我们介绍了如何在IE中调试Javascript代码,这一篇内容主要介绍在Visual Studio中调
XSLT (eXtensible Stylesheet Language Transformation) 是一种用来转换XML文档结构的语言。 相信大
写的程序多为小程序,配置基本差不多。每次都要配置Include路径及lib路径很麻烦。 当然,可以在Prope
我主要是想使用单元测试,VS2010是有自己的单元测试的,虽然我不抵触Microsoft的东西,但是自己做的
Chai同学已经在他的blog上贴了文章,讲述VS2010中,针对SharePoint开发的一些增强。虽说VS2010还有
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号