Ошибки, баги, вопросы - страница 2746
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нет. Во время компиляции это ещё неизвестно.
Тогда как это поможет избежать огромного количества проверок при вызове SymbolInfoTick десятки миллиардов раз?
Тогда как это поможет избежать огромного количества проверок при вызове SymbolInfoTick десятки миллиардов раз?
Никак. Это только помогает не копировать саму строку без необходимости.
Никак. Это только помогает не копировать саму строку без необходимости.
Тогда очевидно, что решение со ссылкой на string для SymbolInfo-функций является правильным, если хочется от Оптимизатора большей эффективности.
У меня отказывается работать отладчик в одном моём проекте. При чем, его поведение сложно предсказать. Иногда он просто отказывается заходить на точки останова. В некоторые функции также заходить отказывается напрочь. Сначала я думал, причина в обновлениях (вдруг с отладкой что-то пошло не так). Но в других более простых программах всё вроде работает. Хотя я особо подробно не проверял, так как работаю над своим основным проектом. Он получился довольно сложным и включает в себя 15 модулей только моей разработки (количество стандартных модулей я не считал). Основной модуль содержит до 2000 строк. Я подумал, может быть всё дело в сложности проекта... К тому же, в некоторых местах я испольную макросы для повторяющихся фрагментов кода. Еще я использую стандартные элементы UI, такие как CAppDialog, CCheckGroup, CComboBox, CButton и т.п, которые я переписал под функционал моей программы. Возможно отладка не работает из-за них... Например, в метод CCheckGroup::itemCheckState(const string item), специально написанный мною, отладка не заходит. Метод находит элемент чек бокса и проверяет выбран ли он (его State):
Вот какой UI получился у меня в итоге:
Часть элементов UI временно засекречена. А вот ветка, где я рассказываю о том как я переопределил методы Show() и Hide() элемента CAppDialog: https://www.mql5.com/ru/forum/338301. Тогда компилятор ругался, возникла критическая ошибка.
В итоге получается, что проект нормально компилируется, компилятор не выдает никаких ошибок. Но отладка работает со сбоями и просто не показывает выполнение некоторых фрагментов кода, функций, методов и т.п.
На сколько я понимаю, причин может быть несколько.
Информация о билде и системе:
2020.05.21 09:35:09.325 Terminal MetaTrader 5 x64 build 2433 started for MetaQuotes Software Corp.
2020.05.21 09:35:09.326 Terminal Windows 10 build 14393, Intel Core i5-5200U @ 2.20GHz, 2 / 3 Gb memory, 61 / 380 Gb disk, IE 11, UAC, GMT+2
Тогда очевидно, что решение со ссылкой на string для SymbolInfo-функций является правильным, если хочется от Оптимизатора большей эффективности.
Да не имеет никакого смысла эта ссылка, сказано же разработчиком. Всё и так передаётся по ссылке. Разница была только в древнем MQL4. И никаких проверок нет при чтении стринга.
Только утомляют подобные утверждения.
Только утомляют подобные утверждения.
Может быть, проще написать:
?...
Зачем пить подобное?
Может быть, проще написать:
Обсуждается другое.
Только утомляют подобные утверждения.
чтобы не быть голословным, приведите бенч для тестов где строка не изменяется.