Ошибки, баги, вопросы - страница 2732
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
что из себя представляет массив строк в памяти? - что такое массив строк?!
О структуре данных МАССИВ.
Описываю с памяти для МТ5, по идеи то же должно касаться и МТ4, возможно что-то будет не так, но должно быть близко.
В целом масив состоит из двух частей: описание и данных, но так же может состоять только из данных.
string s_arr_1[]; - динамический массив, который состоит из описания и массива данных.Данные - память выделенная под элементы массива.
Описание - структура содержащая следующие поля, последовательность не сохранена:
string s_arr_2[10]; - тип массива зависит от расположения строки:
если используется как локальная переменная - то это статический массив, который состоит из описания и массива данных, расположенных последовательно на стеке.
если используется как поле в структуре/классе - это просто массив данных (часть с описанием отсутствует).
О структуре данных МАССИВ.
Описываю с памяти и для МТ5, по идеи то же должно касаться и МТ4, возможно что-то будет не так, но должно быть близко.
В целом масив состоит из двух частей: описание и данных, но так же может состоять только из данных.
string s_arr_1[]; - динамический массив, который состоит из описания и массива данных.Данные - память выделенная под элементы массива.
Описание - структура содержащая следующие поля, последовательность не сохранена:
string s_arr_2[10]; - тип массива зависит от расположения строки:
если используется как локальная переменная - то это статический массив, который состоит из описания и массива данных, расположенных последовательно на стеке.
если используется как поле в структуре/классе - это просто массив данных (часть с описанием отсутствует).
Спасибо!
была надежда, что может быть, какая то стандартная структура из WinAPI существует, но видимо со строками такого быть не может
ЗЫ: обмен с dll наладил, правда как и раньше в 2 вызова - запрос действия в dll и возврат требуемого размера буфера под string и 2-й вызов с копированием string в подготовленный буфер, ладно, задача локальная, но была надежда, что упрощу решение
Массив строк-это массив объектов string. Где-то, кто-то из разработчиков писал, что там два поля: указатель на строку и 32 бита размера выделенной памяти. А вообще, такие вещи неплохо бы и в официальных доках прописать, что бы не гадать.
основная проблема что MQL4 и 5 это очень разные программы ))))
строки в MQL4 в .Net разбираются прекрасно StringBuilder Класс , в общем тут Вы правы, что строка это все таки не область памяти, а некий обьект
О структуре данных СТРОКА.
Описываю с памяти для МТ5, по идеи то же должно касаться и МТ4, возможно что-то будет не так, но должно быть близко.
Данные содержат следующие поля:Строка состоит из Описания + Данные.
Описание содержит следующие поля:
О структуре данных СТРОКА.
Описываю с памяти для МТ5, по идеи то же должно касаться и МТ4, возможно что-то будет не так, но должно быть близко.
Данные содержат следующие поля:Строка состоит из Описания + Данные.
Описание содержит следующие поля:
Вопрос. Это где-то описано, или сами разбирали?
хочу возвратить из .dll в MQL4 строку (с MQL5 вообще без проблем все пишется)
в общем много копий уже наломал, вот и хочу спросить знающих: что из себя представляет массив строк в памяти? - что такое массив строк?!
Передавайте вместо массива string только uchar массив. Так проще.
Например, можно так преобразовывать:
Работает одинаково для MQL4 и MQL5
Передавайте вместо массива string только uchar массив. Так проще.
Например, можно так преобразовывать:
Работает одинаково для MQL4 и MQL5
нужно из dll в MQL возвращать значения, в любом случае на стороне MQL нужно готовить буфер для приема данных
в общем долго обьяснять, все сделал уже, просто решил проконсультироваться
спасибо
1) когда перегружена функция из глобального пространства имен;
2) когда перегружена системная функция.
Доброго времени суток!
Подскажите пожалуйста, есть эксперт Снайпер, он на новом билде не работает в МТ4 Альпари, можно как то исправить? Он даже на график не устанавливается. На билде 1090 работает.
Но терминал МТ4 на 1090 билде не подключается к инету, пишет "Старая версия".
Доброго времени суток!
Подскажите пожалуйста, есть эксперт Снайпер, он на новом билде не работает в МТ4 Альпари, можно как то исправить? Он даже на график не устанавливается. На билде 1090 работает.
Но терминал МТ4 на 1090 билде не подключается к инету, пишет "Старая версия".
Если есть исходный файл эксперта - обратитесь во фриланс. Там помогут.
Лучше всего, конечно, обратиться непосредственно к автору эксперта.
написал dll для MQL5 которая в WinForms на .Net создает в окошке графическую таблицу, портировал код под под нативные вызовы для MQL4
замерил скорость, чтобы оценить скорость обновления графики 5 столбцов и 5 строк таблицы
MQL5:
2020.05.05 22:55:33.220 tbl_tst (EURUSD,H1) Цикл 0 время = 143563 ms
2020.05.05 22:57:55.370 tbl_tst (EURUSD,H1) Цикл 1 время = 142156 ms
2020.05.05 23:00:19.121 tbl_tst (EURUSD,H1) Цикл 2 время = 143750 ms
MQL4:
2020.05.05 22:51:25.359 tbl_tst EURUSD,H1: Öèêë 2 âðåìÿ = 66813 ms
2020.05.05 22:50:18.551 tbl_tst EURUSD,H1: Öèêë 1 âðåìÿ = 69219 ms
2020.05.05 22:49:09.332 tbl_tst EURUSD,H1: Öèêë 0 âðåìÿ = 67062 ms
код dll на 99% один в один, портировал под MQL4 примерами из статьи https://www.mql5.com/ru/articles/249
по моему очень большая разница