The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Пример обработки исключений в C++ программе (example lib compile)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: example, lib, compile,  (найти похожие документы)
From: Vladimir Dozen <dozen@osw.com.ru> Newsgroups: fido7.ru.unix.prog Subject: Пример обработки исключений в C++ программе > Пишу вот библиотечку под свои нужды, активно юзаю в ней исключения, > хочется еще и _init ()/ _fini () под свои нужды запользовать. AFAIR они > используются для (де)инициализации механизма обработки исключений Господи, уже второй обвиняет бедные функции в чем ни попадя. Нет, они не используются. > напрямую их использовать не получается ;( Чего тебе надо-то? Исключения прекрасно кидаются из библиотеки в основной бинарник (FreeBSD 5.0-CURRENT, g++ 2.95.3): test.cpp: =============== #include <stdio.h> #include <dlfcn.h> #include <string> #include <stdexcept> #if defined(EXE) int main() { void* so; int (*hl)(); so = dlopen("./libtest.so",0); if( !so ){ printf("%s\n",dlerror()); exit(1); } hl = (int(*)())dlsym(so,"hello"); if( !hl ){ printf("%s\n",dlerror()); exit(1); } if( hl ) { try { hl(); } catch(const std::exception& ex) { std::cerr << "catched: " << ex.what() << std::endl; } } return 0; } #endif #if defined(SO) extern "C" void _init() { puts("init"); } extern "C" int hello() { puts("hellooooooooooooooooo"); throw std::logic_error("ex from so"); return 5; } #endif =============== Makefile: =============== all: test libtest.so FLAGS=-Wall -g -O -fPIC test: test.o Makefile g++ -DEXE $(FLAGS) test.cpp -o test libtest.so: test.cpp Makefile g++ -shared -DSO $(FLAGS) -c test.cpp -o libtest.o ld -shared -o libtest.so libtest.o =============== -- dozen @ home

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру