Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

Утечка памяти при загрузке DLL   Найти похожие ветки 

 
bjohny   (2004-08-26 13:26) [0]

Привет. Проблема в следующем.
Создаю пустую DLL, определяю и экспортирую пустую процедуру.
В проекте DLL загружается динамически. Послу загрузки сразу же выгружаю.
LoadLibrary(...);
FreeLibrary(...);
MemProof говорит что утечки нет, но Task Manager показывает утечку.Если запустить в цикле загрузку/выгрузку на несколько часов, то кушается вся память.
Подскажите почему растет память????


 
DVM ©   (2004-08-26 13:35) [1]


> но Task Manager показывает утечку

Не верь таскменеджеру. Верь MemProofу. Еще можно ProcessExplorer-у.


 
bjohny   (2004-08-26 13:39) [2]

Я бы ему не верил, если бы винда не говорила что You virtual memory is LOW


 
DVM ©   (2004-08-26 13:46) [3]


> если бы винда не говорила что You virtual memory is LOW

код давай...


 
bjohny   (2004-08-26 14:02) [4]

Dll:
library Test;

uses
 SysUtils,
 Forms,
 Classes;

{$R *.res}
procedure tt;
begin
//
end;

exports
tt;
begin
end.


Проект:
// Timer.Interval:=10;
procedure TForm1.Timer1Timer(Sender: TObject);
var DllH:HWND;
begin
 DllH:=LoadLibrary("Test");
 FreeLibrary(DllH);
 Application.ProcessMessages;
end;


 
DVM ©   (2004-08-26 14:20) [5]

А если убрать
uses
SysUtils,
Forms,
Classes;
ситуация не меняется?


 
bjohny   (2004-08-26 14:38) [6]

Если оставить  SysUtils, то все нормально, а вот если  Classes или Forms то ... утечка...


 
VMcL ©   (2004-08-26 14:38) [7]

>Application.ProcessMessages;

Убрать.


 
bjohny   (2004-08-26 14:41) [8]

Ну и что.... убрал все равно...


 
DVM ©   (2004-08-26 14:52) [9]


> а вот если  Classes или Forms то ... утечка...

Ну вот и ответ. Там искать надо.


 
clickmaker ©   (2004-08-26 14:54) [10]


> [8] bjohny   (26.08.04 14:41)

а если без таймера, просто в бесконечном цикле?


 
bjohny   (2004-08-26 15:05) [11]

В бесконечном цикле такая же беда.


 
Игорь Шевченко ©   (2004-08-26 15:46) [12]

А зачем грузить такую DLL ?

При инициализации forms очень много действий производится...


 
bjohny   (2004-08-26 15:49) [13]

НУ хорошо, эт в общем.
Возьмем OLE, там тоже дует будь здоров.
Меня интересует как от этого избавиться, пусть хоть мильон действий производится.


 
Игорь Шевченко ©   (2004-08-26 17:59) [14]


> Меня интересует как от этого избавиться


Сказали уже - убрать Forms.


 
bjohny   (2004-08-27 09:46) [15]

Реально DLL использует WMIScripting, который в свою очередь использует OLE. Память течет по страшному. Убрать WMI??? Это не выход...


 
Digitman ©   (2004-08-27 10:18) [16]


> bjohny   (27.08.04 09:46) [15]


> Реально DLL использует WMIScripting, который в свою очередь
> использует OLE


вот и приводи РЕАЛЬНЫЙ код, а не абстрактный пример


 
bjohny   (2004-08-27 10:30) [17]

Суть то остается одной...


 
Digitman ©   (2004-08-27 10:42) [18]


> bjohny   (27.08.04 10:30) [17]
> Суть то остается одной...


да, суть остается одной - не верю чтобы "пустая" ДЛЛ вызывала проблемы с утечками памяти


 
bjohny   (2004-08-27 10:59) [19]

ну так глянь


 
Digitman ©   (2004-08-27 11:37) [20]


> bjohny   (27.08.04 10:59) [19]


> ну так глянь


даже и глядеть нечего



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

Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.037 c
1-1095584626
AdmeraL
2004-09-19 13:03
2004.10.03
копирование фойлов при помощи объектов


1-1095267612
appendix
2004-09-15 21:00
2004.10.03
выравнивание текста в StringGrid


14-1095162390
Knight
2004-09-14 15:46
2004.10.03
Можно ли использовать помощников MS в своих программах?


14-1095213758
Думкин
2004-09-15 06:02
2004.10.03
С днем рождения! 15 августа


14-1094930070
yanval
2004-09-11 23:14
2004.10.03
крутая реклама дохтура Касперского - помогите, я боюсь!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский