Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.04.2006, 12:51
|
|||
|---|---|---|---|
|
|||
SaVCL: невыгрузка приложения из памяти при использовании DLL |
|||
|
#18+
Суть проблемы: приложении есть подключенный SaDb. Из приложения вызывается форма из DLL, которая использует DataModule из той же DLL. На datamodule тоже есть SaDB, который тоже коннектится к базе. Если этот модуль создается в секции initialization своего юнита, освобождается в finalization, то приложение при закрытии главной формы не выгружается из памяти. При этом замечено: 1. Нормально выгружается, если на момент закрытия активен только один SaDb либо в приложении либо в dll 2. Нормально выгружается, если в finalization не делать модулю Free 3. НЕ выгружается, даже если в finalization или в DataModuleDestroy делать SaDb1.Active := false; 4. Поведение не зависит от использования SharedName, проявляется даже при отдельных коннектах к разным базам. Проверено на WinXP и 2000, Delphi 6 Update pak 2, SaVCL 2.17. Могу привести исходники для воспроизведения ситуации. P.S. Сергей, может есть смысл на RUSUG форум по SaVCL организовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2006, 14:52
|
|||
|---|---|---|---|
|
|||
SaVCL: невыгрузка приложения из памяти при использовании DLL |
|||
|
#18+
> Могу привести исходники для воспроизведения ситуации Да, Александр, если это не сложно, то вышли исходники. Обязательно надо в этом разобраться. > P.S. Сергей, может есть смысл на RUSUG форум по SaVCL организовать? Смысл, наверное, есть. Хотя надо поинтересоваться у других пользователей, нужен отдельный форум или нет. С уважением, Сергей Гаврилов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2006, 15:05
|
|||
|---|---|---|---|
SaVCL: невыгрузка приложения из памяти при использовании DLL |
|||
|
#18+
В принципе дело хорошее. Можно на РУСУГе открыть раздел бесплатного софта и там выложить их описание и download. Если пользователям будет удобно, то под каждый такой продукт откроем форум. Первыми на очереди было бы неплохо выложить в данный раздел saVCL и MacroSQL (по отношению к нему уже ведутся определенные работы, просто пока не достаток свободного времени). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2006, 15:35
|
|||
|---|---|---|---|
|
|||
SaVCL: невыгрузка приложения из памяти при использовании DLL |
|||
|
#18+
Сергей Гаврилов> Могу привести исходники для воспроизведения ситуации Да, Александр, если это не сложно, то вышли исходники. Обязательно надо в этом разобраться. Оправил на e-mail в профиле. Перепроверид поведение. Пункт 1 не совсем верен. Если активировать и потом отключить SaDb в Exe, а потом активировать в DLL - все равно не выгружается. Вот если в exe вообще не подключать SaDb - то тогда выгружается. В общем тест там простейший, можно поэкспериментировать. Сергей Гаврилов > P.S. Сергей, может есть смысл на RUSUG форум по SaVCL организовать? Смысл, наверное, есть. Хотя надо поинтересоваться у других пользователей, нужен отдельный форум или нет. Уже поинтересовался . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.04.2006, 18:28
|
|||
|---|---|---|---|
|
|||
SaVCL: невыгрузка приложения из памяти при использовании DLL |
|||
|
#18+
Форум про SaVCL уже открыт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2006, 22:00
|
|||
|---|---|---|---|
|
|||
SaVCL: невыгрузка приложения из памяти при использовании DLL |
|||
|
#18+
Экспериментальным путем удалось выяснить забавную вещь: при выгрузке делфийного приложения отследить порядок автоматического освобождения (без явного вызова FreeLibrary) загруженных с помощью LoadLibrary dll-библиотек невозможно. Александр, finalization в твоей библиотеке вызывается фактически после выгрузки sadll*.dll (после того, как система вызвала в sadll функцию DllEntryPoint с параметром DLL_PROCESS_DETACH). Если в твоем примере в головной программе в явном виде прописать FreeLibrary (для твоей библиотеки), то вроде все работает и выгружается. С уважением, Сергей Гаврилов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2006, 22:23
|
|||
|---|---|---|---|
|
|||
SaVCL: невыгрузка приложения из памяти при использовании DLL |
|||
|
#18+
Сергей Гаврилов пишет: > Александр, finalization в твоей библиотеке вызывается фактически после > выгрузки sadll*.dll Что-то подобное я подозревал > Если в твоем примере в > головной программе в явном виде прописать FreeLibrary (для твоей > библиотеки), то вроде все работает и выгружается. Смысл ясен. Я проще поступил - убрал finalization. Он там неактуален - поставил чисто из привычки парности - если что-то создаешь, то не забудь освободить Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=55&tablet=1&tid=2012905]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 427ms |

| 0 / 0 |
