Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
почитайте статью https://www.mql5.com/ru/articles/96
Ей, родимой и руководствовался.
В примере дано в МТ5 объявление
у меня
struct OperRes {
OperR, // Тип операции чтения
OperW, // Тип операции записи
OperRes: Integer;
}
= разница в наименовании структуры
= + разница МТ4 и МТ5 = ??
М Едитор плюет на struct
=
'struct' - expression on global scope not allowed F:\MQL4\experts\fxMT4.mq4 (8, 1)
'struct' - variable not defined F:\MQL4\experts\fxMT4.mq4 (8, 1)
в МТ4 нет структур, только массивы, да и по словам разработчиков в МТ4 вызов длл намного дольше чем в МТ5
Пока решил сделать шифр для связи с ДЛЛ
Из ситуации выкрутился, все работает.
Вопросы на потом остались:
1. МетаЭдитор не принимает слово struct
2. МТ4 сбоит при связи с функцией ДЛЛ по ссылке.
Если кто в этом реально разбирается, прошу ответить, где покопать
Arxan, по ссылке в DLL передаются только массивы и строковые переменные (речь идёт о MQL4). Остальные переменные могут передаваться только по значению. При этом оператор "&" работает только в MQL-функциях, он не предназначен для внешних функций, насколько я понимаю. Поэтому если ты хочешь изменять значение какой-то переменной в DLL, то тогда тебе нужно передавать туда не переменную, а массив, причём без всяких "&"
Если кто в этом реально разбирается, прошу ответить, где покопать
experts\samples\DLLSample
https://www.mql5.com/ru/articles/1533
Arxan, по ссылке в DLL передаются только массивы и строковые переменные (речь идёт о MQL4). Остальные переменные могут передаваться только по значению. При этом оператор "&" работает только в MQL-функциях, он не предназначен для внешних функций, насколько я понимаю. Поэтому если ты хочешь изменять значение какой-то переменной в DLL, то тогда тебе нужно передавать туда не переменную, а массив, причём без всяких "&"
1. = четко сформулировано то, что я думал
2. массив я передаю
int BarMT4_Sd(int& dt[], double& cH[], double& cL[], int ln);
без & что-то не работало, сейчас не помню что.
Насчет изменения в массиве = спасибо, запомню на потом.
С переводом части кода в ДЛЛ получилось даже лучше, чем планировал
experts\samples\DLLSample
https://www.mql5.com/ru/articles/1533
Наскоро глянул - там все в ДЛЛ, как у меня работает.
Мне надо ИЗ ДЛЛ
Наскоро глянул - там все в ДЛЛ, как у меня работает.
Мне надо ИЗ ДЛЛ
вы зашорились своей задачей.
в примерах все, что вообще можно.
Мне надо ИЗ ДЛЛ
Я же написал в первом же посте...
В MQL:
В длл (С++)
Ну народ пошел, ваще вникать не хочет...
Надо разжевать и в рот положить.
Код не проверял, так что теоретически могут быть косяки, принцип надеюсь понятен.
Я же написал в первом же посте...
В MQL:
В длл (С++)
Ну народ пошел, ваще вникать не хочет...
Надо разжевать и в рот положить.
Код не проверял, так что теоретически могут быть косяки, принцип надеюсь понятен.
Народ С++ не понимай.
Моя Паскаль понимай.
Sorry.
А
это как раз прием через массив, это на потом.
Статья в закладках ждет своего часа, спасибо