Новая версия платформы MetaTrader 5 build 2170: Области видимости в MQL5, глобальное обновление тестера стратегий и встроенного хостинга - страница 3
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня скомпилился
Какой билд у metaeditor64.exe? Заменил на 2085 от старой версии - тоже стал компилить.
Попробуйте еще добавить такой код и скомпилить:
Этот код раньше компилировался, теперь - нет:
В анонсе прямо дается правильный вариант вызова функции из DLL.
В анонсе прямо дается правильный вариант вызова функции из DLL.
В анонсе другой случай. Здесь параметры разные, и ошибки компиляции раньше не было. Почему нельзя было оставить как раньше? Сейчас придется весь старый код перелопачивать.
В анонсе другой случай. Здесь параметры разные, и ошибки компиляции раньше не было. Почему нельзя было оставить как раньше? Сейчас придется весь старый код перелопачивать.
Потому что код сразу перестанет работать, если пользователь решит ввести функцию с совпадающей сигнатурой.
Потому что код сразу перестанет работать, если пользователь решит ввести функцию с совпадающей сигнатурой.
С совпадающей сигнатурой пусть явно указывает, для остальных случаев - нет необходимости. Остаюсь на старом редакторе пока.
С совпадающей сигнатурой пусть явно указывает, для остальных случаев - нет необходимости.
Стал пользоваться Вашей библиотекой. Все хорошо работает настолько, что в код Ваш даже не лезу. И вот ввожу безобидную функцию у себя, а советник перестает работать.
А причина в том, что моя безобидная функция совпала по сигнатуре с Вашей импортируемой. Ну и что делать в таком случае? Правильно, лезть в Вашу библиотеку и править ее.
Так почему бы сразу не предотвратить такой сценарий развития событий автору библиотеки?
А причина в том, что моя безобидная функция совпала по сигнатуре с Вашей импортируемой.
Повторяю - не тот случай, сигнатура не совпадает. А для своей безобидной функции пожалуйста, указывайте явно.
Повторяю - не тот случай, сигнатура не совпадает. А для своей безобидной функции пожалуйста, указывайте явно.
Запускаем такой скрипт с инклудом этого mqh.
Он выдаст что-то вроде 127 в журнал.
А теперь в скрипт дописываем безобидную строку. Он становится таким
И результат стал 123! А по какой причине пользовательская функция стала влиять на результат функции из mqh?
Вот чтобы такой фигни не происходило, нужно делать однозначно.
А теперь в скрипт дописываем безобидную строку. Он становится таким
Вот тут и надо ругаться компилятору, т.к. сигнатура совпадает. Повторяю 4 раз - сигнатура разная.
раньше этот код работал и в МТ4 и в МТ5, сейчас только в МТ4
какой теперь синтаксис, чтобы получить указатель на функцию и затем вызвать функцию через указатель?