Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.04;
Скачать: CL | DM;

Вниз

Две интересные ситуации с Dll.   Найти похожие ветки 

 
yuger ©   (2002-02-14 12:16) [0]

Ситуация №1:
Я написал Dll, которая работает со строками
В експортные функции я, как положено, передаю параметры и получаю результат как PChar.
Использую также некоторые другие (внутренние) функции - там я передаю параметры как string.
Для трасировки я промежуточные результаты выводил showmessage-ем.
Пришлось подключить Dialogs. после отладки я поубирал showmessage
и отключил dialogs. Она начала работать неправильно (не екзепшены и проч. а логика). Дописываю модуль dialogs - снова всеработает как часы. Исколесил Dialogs - никаких переопределений функций и типов не нашел.Мне посоветовали подключить ShareMem, но после этого она вообще не поггружается(ругается). Я ее динамически подгружаю.
В чем же тут дело? Из за Dialogs она получила размер 195Kb.
Без него 48Kb. Мне ОЧЕНЬ важен маленький размер. Что надо сделать
и в чем тут причина?
Ситуация №2:
Я динамически подгружаю Dll, потом выгружаю freelibrary и
спустя значительное время пытаюсь удалить, а система говорит, что библиотека занята.
После выхода из программы удалить уже удается.
(В моей программе я даю возможность красиво подключать и удалять плагины). Как это обойти.


 
Fellomena   (2002-02-14 12:25) [1]

По поводу ситуации 2:
Когда ты делаешь FreeLibrary ты не выгружаешь, а освобождаешь DLL. Windows не освобождает из под неё память намеренно. Потому что если вдруг твоё приложение снова запросит эту DLL накладные расходы на отображения из файла будут больше, нежели из памяти. Этот механизм используется Windows для ускорения работы программ (вернее оптимизации этой работы). Иногда это оправдывает себя, но иногда мешает.

По поводу ситуации 1:
А ты попробуй не передавать как string - используй Char и PChar или пользуйся преобразованием типов при передачи параметров типа String.


 
Digitman (M) ©   (2002-02-14 12:28) [2]

В DLL :
USES ShareMem, ... а затем уж - все прочие используемые ...



Страницы: 1 вся ветка

Текущий архив: 2002.03.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
1-9149
Squall
2002-02-17 22:56
2002.03.04
Скорость Progress Bar a!!!


1-9145
ДмитрийВ
2002-02-17 19:27
2002.03.04
в буфер кусок изображения на форме сохранить


1-9144
VDXMAN
2002-02-17 17:03
2002.03.04
HELP ME


6-9266
Artis
2001-12-12 18:46
2002.03.04
Возник такой вопрос - серверу посылается запрос на что он выдает информацию обратно как в цикле посылать запрос и переходить к следующему значению только после того как будет получен и обработан ответ???


3-9076
Demon ltd
2002-02-06 23:58
2002.03.04
Показ в данных выборочно из таблицы