Re: Определение текущей компилируемой функции в VC++
От: VVV Россия  
Дата: 12.09.01 11:43
Оценка:
Здравствуйте Фатыхов михаил Хамитович, вы писали:

ФМХ>Наверное многие сталкивались с такой проблемой:

ФМХ>Необходимо при компиляции определить что за функция в данный момент компилирируется (например для всевозможных логов ошибок, try...catch, MessageBox и др). Естественно можно написать:
ФМХ>void SomeFunc()
ФМХ>{
ФМХ>#define FUNC_NAME "SomeFunc";
ФМХ> try
ФМХ> {
ФМХ>.
ФМХ>.
ФМХ>.
ФМХ> }
ФМХ> catch(...)
ФМХ> {
ФМХ> MessageBox( 0, "Error in " FUNCNAME, "Error", MB_OK );
ФМХ> }
ФМХ>}

ФМХ>но мягко говоря это напрягает...


ФМХ>Thanks


есть такие предопределённые макросы
__LINE__ — The line number in the current source file. The line number is a decimal integer constant. It can be altered with a #line directive.
__FILE__ — The name of the current source file. __FILE__ expands to a string surrounded by double quotation marks.

конечно это не имя функции, но по имени файла и номеру строки функцию всегда можно отыскать, к тому же через пару раз Вы будете уже помнить все проблемные места наизусть :) ... для вывода отладочной информации очень удобно использовать OutputDebugString и тулзу для просмотра этого DBGVIEW.EXE — можно скачать с http://www.sysinternals.com/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.