Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Связывание кода с исходником

450
25 декабря 2003 года
suffer
64 / / 20.03.2000
Можно ли каким-либо образом, выкидывая, например, исключение, заодно указать,в какой строке какого файла исходников происходит выбрасывание исключения. Причем, это должен быть не ручной ввод имени файла и номера строки, а что-то более гибкое.
293
25 декабря 2003 года
SEDEGOFF
586 / / 06.10.2002
Если тебе это нужно во время работу программы - то можно извратитьсяся так. Заключить каждую полезную строку кода в блок try-catch и в ручную посчитать строки.
А во время отладки он сакм говорит и встает на нужную строку. Если нет, то у тебя отключен режим отладки. Включаеться он так
Проджект-оптионс-фуллдебуг (на какойто закладке)
450
25 декабря 2003 года
suffer
64 / / 20.03.2000
Это понятно. Но не то, что я имел ввиду.
Пример:
AnsiString str="Переменная str инициализируется в исходнике "+{имя исходника}+" в строке номер "+{номер строки}.

Как получить {имя исходника} и {номер строки}?
310
25 декабря 2003 года
fellow
853 / / 17.03.2003
Посмотрите Project Options вкладка C++, группа Exception Handling, чекбокс Location Information. Используются глобальные функции, описанные в справке:
Код:
#include <iostream>
#include <dos.h>     // TO GET THE GLOBAL _arg VALUES
#include <condefs.h>
#pragma hdrstop
#include <except.h>

USERES("Project1.res");
//---------------------------------------------------------------------------

#pragma option -xp

void MyFunc(void)
{
   throw Exception( "The rain in spain lies mainly in the plain." );
}

//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
  try { MyFunc(); }

  catch ( Exception &e )
  {  ShowMessage(  e.Message + "\n\n"
                  + "An exception of type " + __ThrowExceptionName()
                  + "\nwas thrown by line " + AnsiString(__ThrowLineNumber())

                  + "\nof file " + __ThrowFileName() );
  };
  return 0;
}
450
25 декабря 2003 года
suffer
64 / / 20.03.2000
Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог