Pobieranie wielkości zaalokowanej pamięci przez DLL

0

Witam.
Mam problem, chciałem pobrać sobie rozmiar jaki zajmuje moja dll'ka, wykopałem takie coś,

uses PsAPI;
var
 inf:MODULEINFO;
...
begin
...
 PsAPI.GetModuleInformation(GetCurrentProcess,DLLHandle,@inf,SizeOf(inf));
 ShowMessage(IntToStr(inf.SizeOfImage)); 
...

Ale to mnie nie podaje prawidłowych wartości (tak uważam) bo nawet jak w string wsadziłem 1GB danych to zwracana liczba się nie zmienia.
Nie wiem czy może ja źle to robię czy w ogóle powinienem to jakoś inaczej zrobić.

0

Niestety nie bardzo wiem, jak osiągnąc to co chcesz zrobić. Jednak to co zwraca Tobie SizeOfImage to jest wielkośc procesu w pamięci. I jest to ta sama wartość, którą pokazują narzędzia w stylu LordePE. Tak jak lpBaseOfDll jest adresem bazowym. Jeżeli LordePE podaje Tobie te same wartości, to wszystko jest ok. Nie znam się, ale może zwiększanie pamięci przez alokacje dla jakiejś dużej zmiennej, nie ma wpływu na ten obszar pamięci. Pewnie ktoś bardziej doświadczony coś Tobie tutaj może doradzi w tej kwestii.

0

Konwencja jest taka że dll pracuje jako "plugin" aplikacji i chciałem zrobić kontrole nad nią i pasowało by mi wiedzieć ile RAMu mi zajmuje ona i to, co robi ona. Łatwiej by było np zdiagnozować czy są jakieś memleaki etc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1