这个博客不推荐它: http://blog.kalmbachnet.de/?postid=78从C++ CLI调用Debug.Assert的安全方法是什么?
但是我想要这样做。我想我需要用我的Debug.Assert包装某种#if
或#ifdef
或类似的东西。另外,没有人有一个很好的例子,在C++ CLI
Debug.Assert?
假设我有以下变量:String^ validationError = bldError.ToString();
现在我希望做一些事情,如:
#if (DEBUG)
Debug.Assert(false, "Got the following validation error:" + validationError);
#endif
我怎样才能做到安全地在C++ CLI
,以及是否有额外的陷阱检查?
编辑:基础上的答案,我想出了下面的宏:
#ifdef _DEBUG
#define CLIASSERT(condition, ...) System::Diagnostics::Debug::Assert(condition, ##__VA_ARGS__)
#else
#define CLIASSERT(condition, ...) // This macro will completely evaporate in Release.
#endif
这里是使用的例子:
String^ strValidationError = bldError.ToString();
CLIASSERT(false, L"Schema validation error: " + strValidationError);
酷!为了成为一个“宏观noob”嘿:) – demoncodemonkey 2010-09-30 08:55:41
@demoncodemonkey,现在的问题是 - 从2006年的帖子仍然适用?警卫还需要吗? – 2010-09-30 13:28:38
为什么不使用CRT断言? http://msdn.microsoft.com/en-us/library/9sb57dw4.aspx – 2014-05-16 16:54:47