|
|
1
7
这是有效的(对我来说,至少在2008年): (本质上,从挂钩函数返回TRUE)
您也可以编写自己的类似断言的行为(请注意,这将显示“中断,继续”对话框):
希望能有所帮助! |
|
|
2
3
廖的回答将带您走完大部分路,但我建议您在调试挂钩中再添加一件事:
否则,您的断言将消失,过程将终止。 这种方法的问题是——至少对于我在家安装的VC Express来说——调试器会抛出一个大的“program.exe has triggered a breakpoint”消息,而不是正常的断言失败,所以这可能不是一个很大的改进。 |
|
3
1
我不确定你是否希望这种行为
|
|
|
4
0
它为什么断言?assert(false)看起来像是在CRT中执行的“不应该发生”代码。如果我是你,我会害怕的。它总是在一条线上吗?有什么评论吗? 编辑: 我的意思是:断言发生在CRT代码中,因为有一种假设,它正在检查你不满足的条件(也许你设法链接到了混合运行时,或者你制作了托管C++程序集,却忘记了手动初始化CRT,或者你试图从DllMain中调用LoadLibrary,或者其他一些不应该发生的事情)。 因此,在弄清楚如何抑制断言之前,首先要弄清楚它为什么断言。否则,您以后可能会遇到看似无关的问题,并且尝试调试它们会很有趣。(从你的问题来看,不清楚你是否知道这些断言是关于什么的) 代码如下
字面意思是“永远不应该执行这个代码分支”。 |
|
|
5
0
为什么不使用 DebugBreak Function ? 或者甚至使用操作码?
|