Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
на просторах нашол по теме https://forum.mql4.com/ru/23111
но ничего путного и рабочего по выгрузке dll из памяти я не нашол.. кто знает расскажите.. профессионалы программисты вам две минуты черкануть пару строк.. и мы благодарны будем..
у Windows есть настройка : выгружать неиспользуемые dll.
Ну или программно выгружай библиотеку.
у Windows есть настройка : выгружать неиспользуемые dll.
Ну или программно выгружай библиотеку.
Остается понять: что такое неиспользуемая библиотека.
у Windows есть настройка : выгружать неиспользуемые dll.
Ну или программно выгружай библиотеку.
на словах я понял.. код можете?
#import "kernel32.dll"
int GetModuleHandleA (string sss);
void FreeLibrary(int hhh);
#import
int deinit(){
int handlissimo= GetModuleHandleA("gayss.dll");
FreeLibrary(handlissimo);
return(0);
}
Интересно, зачем ее выгружать? Ну и пускай болтается. Вообще момент выгрузки библиотек из памяти терминала не задокументирован (я не видел), поэтому на это нельзя полагаться. Завтра возьмут и что-нибудь подкрутят. Если нужны гарантии, можно написать библиотеку обвертку, в которой вы сами загружаете/выгружаете когда вам нужно.
Обычно они выгружаются после завершения скриптов, с чего вы взяли что у вас нет? После завершения скрипта, попробуйте удалить .dll, если удалится, то она выгружена.
Без проблем возможно сделать гарантировано невыгружаемую библиотеку (выгрузится при завершении процесса терминала).
смотри рисунок
Ну и пускай болтается
она грузит процессор .. и второй раз нельзя обратиться к dll .. т.е. не получается даже на тесторе второй раз запустить тестирование.. приходиться вырубать ...принудительно..
я тоже такого.. вот и прошу помощи у тех кто знает или может показать..
промежуточную dll ? или в той же ? покажи если можешь пример..
Обычно они выгружаются после завершения скриптов, с чего вы взяли что у вас нет?
После завершения скрипта, попробуйте удалить .dll, если удалится, то она выгружена.
не удаляется.. т.е. держится терминалом.. вырубишь терминал и удалиться\перезапишеться ..
где- то писали что код dll надо уметь писать.. но сколько неищу те профи которые говорят немогут выложить рабочую систему.. простую dll я показал .. она работает без массива.. добавляешь массив(в dll).. и начинает тупить..
она грузит процессор .. и второй раз нельзя обратиться к dll .. т.е. не получается даже на тесторе второй раз запустить тестирование.. приходиться вырубать ...принудительно..
для кого я выше написал
это уже говорили что плохо написана.. dll ..
type
Tarray1= array[0..0] of Double;
PTarray1= ^Tarray1;
procedure test1(
name: PWideChar;// имя .. любой string
data_k: Integer;// размер массива data // обязательно!!
data: PTarray1
); stdcall;
var
q1: Integer;
begin
for q1:= 0 to 5 do begin
ShowMessage(IntToStr(q1)+ ' = '+ FloatToStr(data^[q1]));
end;
end;
1. промежуточную dll ? или в той же ? покажи если можешь пример..
2. пожалуйста покажи .. как .. а то уже мозги киснут.. не могу сообразить..1. Да, написать промежуточную либу, которая загружает/выгружает целевую.
2. https://www.mql5.com/ru/forum/10139