
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
AlexEro,
Я тут из отпуска вернулся, смотрю тебя эти ироды совсем одолели. Давай их вместе мочить.:)))))
HIdeYourRichess,
Хватит всякую херню говорить, проблема с выгрузкой ДЛЛ после удаления индикатора действительно существует, только связана она не с наличием или отсутствием ошибок в коде самой ДЛЛ, а с тем, что использование внешних библиотек разработчики ограничили т.н. "разумными пределами".
В чем эти пределы заключаются - хер его знает, объяснить подробнее они не удосужились. Тем не менее, пока библиотека в них укладывается, загрузка и выгрузка идут пучком.
Но как только опупевший программер начинает чересчур рьяно манипулировать памятью или хавать у терминала процессорное время на свои вычисления или вообще замахнется на святое (о ужас) - очередь сообщений программы terminal.exe, вот тогда злобный метаквот ему и отомстит.
Невыгрузка длл - это цветочки. Мне встречались такие вещи, от которых ваще волосы дыбом вставали. Например, индикаторы (в которых, заметьте, вызовы ДЛЛ отсутствовали) начинали лезть друг другу в адресное пространство. А то и вообще после вызова простенькой функции из ДЛЛ (даже совсем ничего не делающей - специально пробовал!) терминал начинал ни с того ни с сего пропускать(!) строки MQL программы. Цикл по таймсерии for(i=limit;i>=0;i--) после завершения вылетал нах в область отрицательных индексов (что непременно подтверждалось алертами)!!! Что поразило тогда больше всего, это то, что терминал.ехе, через энное количество миллисекунд осознав весь комизм ситуации и немедленно обосравшись, тут же прекращает лохматить бабушку и возвращает переменную i к своему родному значению 0. Типа ничего не было.
Рассуждать о том, что делает утилита regsvr, давайте будем после того, как будут исправлены ошибки с обработкой кода ех4 программ.
Ещё раз повторяю - у меня нет проблем с dll ни где. Если у вас проблемы - то это именно проблемы вашего программирования, ни MS ни MT тут скорее всего не виновато. А то что нужно использовать "старый" VC - так это и так должно быть понятно.
Смешной человек.
Все решается тестированием.
.
Ну вот возьми ты dll, дерни ее из советника- если удастся удалить
при запущенном MT- ну всё, герой ты, поздравляю!
А не удастся- так зачем ты тут это пишешь? Для кого?
Чтобы Закачики видели, какое отношение их ждет при работе с твоими изделиями?
Или чтобы все точно знали, к кому не стоит обращаться за советом?
.
Вот я сейчас подумал, а какой ответ хотели бы получить люди, задавшие вопрос-
скорее всего такой: создайте Exe, грузаните в него Dll с динамической линковкой
через GetProcAddress() и подергайте за вызовы.
Если при работающем Exe после выгрузки Dll не удаляется - у вас проблемы.
Это называется получить реальный объективный результат вместо придумывания
каких-то "ошибок" "вашего программирования".
А вот уже к этому полученному результату можно придумать теорию :-)...
.
Теорий тут, каюсь, все напридумывали.
Но это из-за лени поднять ж% чтобы нормально ответить.
.
А VBAG... что же... браво!
Толковое описание проблемы, конкретный юзкейс, все резко стало понятно.
Хотя Вам, если Вы работаете с сервером приложений, замена dll скоро будет не так актуальна :-).
.
Честно сказать- для отладки лучше иметь *статические* данные в файле.
Пусть вам советник скинет данные в файл.
Я последние лет 7 читаю и пишу многомегабайтные файлы одной строкой- все крайне быстро.
Причем для tab-separated файла можно эту большую строку переделать в матрицу за 1 проход и без substr()'ов
(за десятые секунды), потому что разбивка на строки, а потом на стобцы работает как-то слишком
медленно (было несколько секунд). Чтобы, если вылетит что-то, то проблему можно было *гарантированно*
воспроизвести, а не зависеть от генераторов случайных чисел.
.
И при таком подходе (!) тестирование упростится. Потому что это не Dll.
Потому что кнопочка run В ОДИН КЛИК откомпилит, слинкует, запустит, а exe сам возьмет нужные данные.
.
P.S.: как раз проблемы с "программированием" решить можно...
Согласен с предыдущими камрадами в том, что свою DLL нужно в MT4 применять осторожно и ограниченно. Это означает ужЕ вышесказанное, а также то, что развивать свою DLL надо постепенно, и никакой экзотики. Ваша DLL - это временный гость в чужом доме полу-интерпретатора MQL4.
2 alsu: я болею, мне просто заняться нечем, умный проект вести в постели не могу, а вот разговор с птушниками больших умственных усилий не требовал, вот и накропал. всё жду когда ж у них совесть проснётся, да пока ея не видно, одна демагогия и пустословие ....
Хватит всякую херню говорить, проблема с выгрузкой ДЛЛ после удаления индикатора действительно существует, только связана она не с наличием или отсутствием ошибок в коде самой ДЛЛ, а с тем, что использование внешних библиотек разработчики ограничили т.н. "разумными пределами".
В чем эти пределы заключаются - хер его знает, объяснить подробнее они не удосужились. Тем не менее, пока библиотека в них укладывается, загрузка и выгрузка идут пучком.
Но как только опупевший программер начинает чересчур рьяно манипулировать памятью или хавать у терминала процессорное время на свои вычисления или вообще замахнется на святое (о ужас) - очередь сообщений программы terminal.exe, вот тогда злобный метаквот ему и отомстит.
Невыгрузка длл - это цветочки. Мне встречались такие вещи, от которых ваще волосы дыбом вставали. Например, индикаторы (в которых, заметьте, вызовы ДЛЛ отсутствовали) начинали лезть друг другу в адресное пространство. А то и вообще после вызова простенькой функции из ДЛЛ (даже совсем ничего не делающей - специально пробовал!) терминал начинал ни с того ни с сего пропускать(!) строки MQL программы. Цикл по таймсерии for(i=limit;i>=0;i--) после завершения вылетал нах в область отрицательных индексов (что непременно подтверждалось алертами)!!! Что поразило тогда больше всего, это то, что терминал.ехе, через энное количество миллисекунд осознав весь комизм ситуации и немедленно обосравшись, тут же прекращает лохматить бабушку и возвращает переменную i к своему родному значению 0. Типа ничего не было.
Рассуждать о том, что делает утилита regsvr, давайте будем после того, как будут исправлены ошибки с обработкой кода ех4 программ.
Тут, как говорится, с дуру можно и хрен сломать. Другими словами, если вы не можете писать нормальные работоспособные программы на MQL - это ваша проблема, не MQL, вот и всё. На С то же можно написать глюкавую dll, но это ведь ни как не отменяет, что С отличный язык. Так и тут, плохому танцору, т.е. вам, мешают боллс. Я понимаю ваше желание обвинить MT или MS в своих ошибках. Если это не пройдет с возрастом - то вам уже ничего не поможет.
Тут, как говорится, с дуру можно и хрен сломать. Другими словами, если вы не можете писать нормальные работоспособные программы на MQL - это ваша проблема, не MQL, вот и всё. На С то же можно написать глюкавую dll, но это ведь ни как не отменяет, что С отличный язык. Так и тут, плохому танцору, т.е. вам, мешают боллс. Я понимаю ваше желание обвинить MT или MS в своих ошибках. Если это не пройдет с возрастом - то вам уже ничего не поможет.
Судя по вашему аватару в вашем возрасте и ломать уже нечего, и мешать нечему.
Вы мои длл видели? А какого ж рожна их плохими словами называть? Глюков я никогда не писал и не пишу - у меня на это времени нет. Глюк в данном случае написан метаквотами (к МС я кстати претензий не предъявлял). Если вы в жизни в длл ничего сложнее 2+2 не вписывали, это не значит что другие этого не делают. 2+2 глючить не будет
Смешной человек.
Все решается тестированием.
Я протестировал, - у меня всё отлично работает.
Ну вот возьми ты dll, дерни ее из советника- если удастся удалить
при запущенном MT- ну всё, герой ты, поздравляю!
А не удастся- так зачем ты тут это пишешь? Для кого?
Чтобы Закачики видели, какое отношение их ждет при работе с твоими изделиями?
Или чтобы все точно знали, к кому не стоит обращаться за советом?
Что значит "удастся удалить"? У меня длл в советнике ведут себя прилично. Я наверное что то неправильное совсем делаю.
это ваша проблема, не MQL
Если интерпретатор не глючный - команды в коде он пропускать не будет, хоть усрись тут!
Что значит "удастся удалить"? У меня длл в советнике ведут себя прилично. Я наверное что то неправильное совсем делаю.
Имеется в виду, что нужно в советнике указать конкретную dll.
Потом выполнить запуск советника и не выходить из метатрейдера.
Далее- самый важный юзкейс- нужно сделать вид, что мы заменяем dll на новую.
Если при запущенном метатрейдере это не удастся (а я проверяю удалением файла)-
значит, система считает, что dll находится в использовании-
вуаля. Советник работу завершил, а Dll не выгружена.
Теперь, чтобы заменить Dll, нужно перезапускать все приложение.
я болею
H1N1;)
превифку грят уже зделоли
Судя по вашему аватару в вашем возрасте и ломать уже нечего, и мешать нечему.
Вы мои длл видели? А какого ж рожна их плохими словами называть? Глюков я никогда не писал и не пишу - у меня на это времени нет. Глюк в данном случае написан метаквотами (к МС я кстати претензий не предъявлял). Если вы в жизни в длл ничего сложнее 2+2 не вписывали, это не значит что другие этого не делают. 2+2 глючить не будет
Оооо, мюсье опустился до попыток надсмехаться над аватаром. Следующая ступень - попытки коверкать ник.
Вы вообще о чем в своём предыдущем спиче рассказывали? о каких таких ужасах поведали изумленной публике? Глядя на такое - я искренне недоумеваю. Что бы такое получить - нужно очень постараться. Отсюда и плохие слова в адрес ваших dll. Но если эти описанные вами ужасы не относятся к dll - то какого вы о них рассказываете?
Кстати, что значит 2+2? это что, показатель сложности? Попробуйте реализовать самостоятельно что то типа 2+2 как в экселе - удивитесь как это не просто.