Я нашел информацию об этой функции в 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. Это приводит к смещению точек останова, которые были установлены в одном решении, где-то в исходном коде, когда код редактируется в другом решении.