Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки с работой библиотеки IMSL, Как сохранить сообщение об ошибке 
:(
    Опции темы
woken
Дата 8.2.2011, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 21.5.2010

Репутация: нет
Всего: нет



Добрый день, уважаемые форумчане!
Подскажите пожалуйста, как можно сохранить (например в текстовый файл) сообщение об ошибке, которое выдает библиотека IMSL.lib при работе с ней (библиотекой) в Visual Studio 2008?
Это сообщение типа Fatal Error, которое возникает, когда в одну из функций, которые содержит библиотека, передаешь неверные параметры.
Саму ошибку я вижу, мне ее показывает Visual Studio в процессе отладки. Но мне нужно ее сохранить в файл.
PM MAIL   Вверх
woken
Дата 9.2.2011, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 21.5.2010

Репутация: нет
Всего: нет



Ну вот, никто не ответил :( Помогите товарищи, очень срочно нужно!
Заранее благодарен!
PM MAIL   Вверх
woken
Дата 9.2.2011, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 21.5.2010

Репутация: нет
Всего: нет



Решил проблему. Вот код, кому интересно.   

Код


        // это пишем в разделе объявлений...
        void error_h_proc (Imsl_error type, long code, char *function_name, char *message)
    {
        FILE *stream_er;
        stream_er = fopen("spline_error.txt", "w");
        fprintf(stream_er, "type = %d\ncode = %d\nmessage = %s", type, code, message);
        //msg = message;
        fclose(stream_er);
    }
        ...
        ...
        // а это непосредственно перед вызовом нужной Вам функции...
        imsl_error_options(IMSL_ERROR_PRINT_PROC, error_h_proc, 0);



PM MAIL   Вверх
Krav
Дата 10.4.2011, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.9.2007
Где: Киев

Репутация: нет
Всего: нет



woken, у меня Visual Studio выдает ошибку при вставке вашего кода
Код
error C3867: 'Project1::Form1::error_h_proc': function call missing argument list; use '&Project1::Form1::error_h_proc' to create a pointer to member


если сделать изменения в вашем коде на такой:
Код
imsl_error_options(IMSL_ERROR_PRINT_PROC, &error_h_proc, 0);


То понятное дело. что пишет illegal operation on bound member function expression

что делать в данной ситуации?
PM MAIL WWW ICQ Jabber   Вверх
xvr
Дата 11.4.2011, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(Krav @  10.4.2011,  17:09 Найти цитируемый пост)
что делать в данной ситуации? 

Функция error_h_proc не должна быть членом класса

PM MAIL   Вверх
borisbn
Дата 11.4.2011, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(Krav @  10.4.2011,  17:09 Найти цитируемый пост)
что делать в данной ситуации?

можно сделать эту ф-цию статическим членом класса, т.е. добавить ключевое слово static перед объявлением ф-ции


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Krav
Дата 13.4.2011, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.9.2007
Где: Киев

Репутация: нет
Всего: нет



Спасибо!

Вывел функцию из класса, но теперь выдает ошибку на записи в файл
Код
An unhandled exception of type 'System.AccessViolationException' occurred in ...
Additional information: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.


Выдает ошибку из-за передаваемых параметров, поскольку запись файл без параметров работает.

Код

 void error_h_proc (Imsl_error type, long code, char *function_name, char *message)
    {
        FILE *stream_er;
        stream_er = fopen("spline_error.txt", "w");
        fprintf(stream_er, "type = %d\ncode = %d\nmessage = %s", type, code, message);
        fclose(stream_er);
    }

namespace Project1 {
    public: void optimizer()
{
   ....
    imsl_error_options(IMSL_ERROR_PRINT_PROC, error_h_proc, 0);
     x1 = imsl_f_lin_prog(n1, m1, a1, b1, c1, IMSL_CONSTR_TYPE, ctype1, IMSL_LOWER_BOUND, lb1, IMSL_OBJ, &obj1, 0);
}
}


Это сообщение отредактировал(а) Krav - 13.4.2011, 19:25
PM MAIL WWW ICQ Jabber   Вверх
borisbn
Дата 13.4.2011, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Krav, попробуй закомменитровать весь код в error_h_proc. Затем попробуй не вызывать imsl_error_options. проблема осталась ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Krav
Дата 14.4.2011, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.9.2007
Где: Киев

Репутация: нет
Всего: нет



borisbn, проблема ушла

Проблема в передаче параметров, как мне кажется
PM MAIL WWW ICQ Jabber   Вверх
borisbn
Дата 14.4.2011, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Проблема ушла после какого шага? Если после второго, то попробуй указать своей ф-ции error_h_proc тип вызова. Сначала __cdecl, затем __stdcall. Если после первого - комментируй по одной строке и смотри, когда уйдёт


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Krav
Дата 14.4.2011, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.9.2007
Где: Киев

Репутация: нет
Всего: нет



borisbn, огромное спасибо! 

__stdcall помог  smile 
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1168 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.