Vista SP1 + Firebird 2.1 embedded + Delphi 2007 + FIBPlus6.7
Vista SP1 + Firebird 2.1 embedded + Delphi 2007 + FIBPlus6.7
С Embedded Firebird 2.0.3 и 2.1 происходит следующее:
На машине с Vista SP1 новый тестовый проект, который подключается к БД через компоненты FIBPlus зависает при старте без отладчика, а под отладчиком прерывается с ошибкой, но стека вызовов не показывает. Ошибка происходит при открытии БД. Другой проект работает номрально, но при закрытии (как я понял при выгрузке первой DLL) происходит переполнение стека.
В XP, Vista без SP1 все работает замечательно.
База данных через IBExpert открывается без проболем. Серверов firebird на машине не установлено, все происходит через ту же самую библиотеку. Никаких внешних UDF не используется.
Firebird 1.5.5 работает нормально.
Дополнительно стоит NOD32, Agnitium Firewall, VS 2008. Больше "особого" софта на компе нет.
Есть идеи "кто виноват" ?
На машине с Vista SP1 новый тестовый проект, который подключается к БД через компоненты FIBPlus зависает при старте без отладчика, а под отладчиком прерывается с ошибкой, но стека вызовов не показывает. Ошибка происходит при открытии БД. Другой проект работает номрально, но при закрытии (как я понял при выгрузке первой DLL) происходит переполнение стека.
В XP, Vista без SP1 все работает замечательно.
База данных через IBExpert открывается без проболем. Серверов firebird на машине не установлено, все происходит через ту же самую библиотеку. Никаких внешних UDF не используется.
Firebird 1.5.5 работает нормально.
Дополнительно стоит NOD32, Agnitium Firewall, VS 2008. Больше "особого" софта на компе нет.
Есть идеи "кто виноват" ?
Re: Vista SP1 + Firebird 2.1 embedded + Delphi 2007 + FIBPlu
О какой библиотеке вообще речь идет?drbasic писал(а): Серверов firebird на машине не установлено, все происходит через ту же самую библиотеку. Никаких внешних UDF не используется.
А трудно поотключать и проверить?drbasic писал(а): Дополнительно стоит NOD32, Agnitium Firewall, VS 2008. Больше "особого" софта на компе нет.
Не нужно хитрых манипуляций. Нужно просто корректно установить ран-тайм от VS2005 (без SP1)drbasic писал(а):Была идея что загружается несовместимая библиотека msvcr80.dll. путем хитрых манипуляций с манифестами я заставил таки загрузится ту, которая распространяется с сервером, но результат не изменился.
Разобрался в причине.
Моя программа построена по модульному принципу, и потому вполне естественно, что в ней есть подкаталог Plugins. Оказывается Firebird без спроса загружает dll, находящиеся в этом каталоге и пытается что-то с ними делать, что и приводит к глюкам, ведь эти dll для него не предназначались. При этом если эти dll уже были загружены, то "расплата" приходит при закрытии приложения, если еще не были, то при загрузке.
Теперь самое интересное, почему падал тестовый проект. В него я скопировал исполняемые файлы firebird из своего рабочего, и при этом в firebird.conf был прописан каталог с рабочим проектом. Firebird загружается, смотрит где его рабочий каталог и начинает радостный загружать dll из Plugins, после чего героически падает.
Мораль: подкаталог Plugins принадлежит Firebird. Для своих нужд я его использовать не могу.
Непонятки: почему глюк проявился только на одной висте из 3х тестовых?
Вопрос: как намекнуть Firebird, чтоб он не трогал dll в Plugins?
Моя программа построена по модульному принципу, и потому вполне естественно, что в ней есть подкаталог Plugins. Оказывается Firebird без спроса загружает dll, находящиеся в этом каталоге и пытается что-то с ними делать, что и приводит к глюкам, ведь эти dll для него не предназначались. При этом если эти dll уже были загружены, то "расплата" приходит при закрытии приложения, если еще не были, то при загрузке.
Теперь самое интересное, почему падал тестовый проект. В него я скопировал исполняемые файлы firebird из своего рабочего, и при этом в firebird.conf был прописан каталог с рабочим проектом. Firebird загружается, смотрит где его рабочий каталог и начинает радостный загружать dll из Plugins, после чего героически падает.
Мораль: подкаталог Plugins принадлежит Firebird. Для своих нужд я его использовать не могу.
Непонятки: почему глюк проявился только на одной висте из 3х тестовых?
Вопрос: как намекнуть Firebird, чтоб он не трогал dll в Plugins?