|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
|||
|
|||
Цитата:
У меня база Interbase и подключение к ней с помощью Interbase-овских примочек, а не ADO. Цитата:
Попробовал программу Я конечно ДУБ... Прога запускается, но нет главного окна программы, как говорится некуда тыркать чтоб проверить загрузку DLL Последний раз редактировалось M.A.D.M.A.N., 02.11.2013 в 18:06. |
#17
|
||||
|
||||
Нет слов...
<<DELETED>> Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 03.11.2013 в 05:34. |
#18
|
|||
|
|||
После долгих и мучительных удалось на половину решить проблему. Раскажу, вдруг кому пригодится...
Итак, проблема заключалась в том, что при использовании OpenDialog в DLL динамической загрузки не проиходила выгрузка DLL из памяти (при закрытии DLL а не основной программы) и повторная загрузка DLL выдавала ошибку на доступ к файлу базы данных. У меня OpenDialog был настроен на каталог, находящийся в каталоге с программой и базой (программа и база - К:\2\, OpenDialog искал файлы (К:\2\doc\). Во время очередного эксперимента по повторной загрузке DLL появилась ошибка доступа к файлу базы по адресу К:\2\doc\'имя базы' , хотя базой там никогда и не пахло. Убрал в OpenDialog настройку на каталог, теперь он ищет файлы в папке с программой (не совсем удобно) зато DLL повторно загружается. И еще, этот гад (OpenDialog) держит в памяти все к чему прикаснуся: и текстовые файлы, которые я выбирал, и exe-шники, и файл базы данных. Скорее всего тут дело в потоках..., но с ними я еще не научился работать. |
#19
|
|||
|
|||
Не, проблема явно не в этом.
OpenDialog может максимум поменять текущую папку. Больше он ничего не блокирует. Надо разбираться более глубоко. Кстати, "помнит" OpenDialog не столько сам, сколько Windows ему дает такой сервис. У меня была схожая проблема с диалогами, когда после их вызоыв и выбора файла на флешке, нельзя было эту флешку извлечь. Проблема решилась проставлением флага в диалоге, что бы он не менял текущую папку. У тебя, возможно, проблема в другом. Может у тебя не "убивается" нормально форма и подключение к БД или не освобождаются другие использованные ресурсы, соответсвенно, OS не может выгрузить библиотеку. Например, если ты передаешь освобождаешь память в программе, а выделял ее в DLL (это просто одна из самых распространенных ошибок). Это может происходить и неявно. |
#20
|
|||
|
|||
Пробовал не использовать Opendialog и DLL отрабатывала и выгружалась просто на УРА. Как только тыркнеш на Opendialog, так капец...
|