На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела C/C++: Базы данных
Модераторы: B.V.
  
    > динамически загружаемая DLL и FireBird 2.5 , зависает при выгрузке DLL
      C++ Builder Embarcadero RAD Studio XE

      Создал DLL с окном.
      В приложении динамически загружаю эту DLL, передаю указатель на базу данных (TIBDatabase).
      На окне из DLL кнопка. По кнопке выполняю SQL запрос к базе данных. Происходит исключительная ситуация. После этого DLL не выгружается из памяти и на FreeLibrary приложение виснет.
      Я выяснил, что во время исключительной ситуации в DLL в функции DllEntryPoint происходит событие отключения потока:

      reason == DLL_THREAD_DETACH && lpReserved == NULL

      По-видимому это поток FireBird (я его запускаю как супер-сервер). Тем не менее коннект с базой не пропадает.

      Может кто сталкивался с подобным? Как обработать такую ситуацию, что бы приложение не зависало?
        ........
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0155 ]   [ 17 queries used ]   [ Generated: 26.04.24, 06:24 GMT ]