我前段时间在 SO 上找到了有关此功能的信息,但该主题与 Visual Studio 的隐藏功能(2005-2008)重复?我再也找不到了。
我想使用这样的东西:
#ifdef DEBUG
#define break_here(condition) if (condition) ... // don't remember, what must be here
#else
#define break_here(condition) if (condition) return H_FAIL;
#endif
//...
hresult = do_something(...);
break_here(hresult != H_OK);
//...
var = do_other_thing(...);
break_here(var > MAX_VAR);
它必须表现得像错误断点。这有点像断言,但没有对话,而且更轻量级。
我不能在这里使用正常的断点,因为我的模块是几个项目的一部分,可以在几个 VS 解决方案中进行编辑。当在其他解决方案中编辑代码时,这会导致在一个解决方案中设置的断点在源代码中的某个位置移动。