Ошибки, баги, вопросы - страница 3385
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нельзя полноценно пользоваться сторонними библиотеками:
Казалось бы, все нормально, но нет, достаточно изменить порядок и сразу (на ровном месте) получаем ошибку:
А какая принципиальная разница между (1) и (2) ?Регистрозависимое имя DLL при перестановке создало user32-класс, поэтому User32-класс создать не получается.
Выше пример, когда решается через дублирование virtual-кода каждый раз при наследовании. Другой способ есть?
Регистрозависимое имя DLL при перестановке создало user32-класс, поэтому User32-класс создать не получается.
В этом коде нет классов
В этом коде нет классов
Вам смысл непонятен?! Возьмите "класс" в кавычки, "namespace" или другое имя. Не могут "user32.dll" и "User32.dll" родить два скопа.
Подскажите, как получить имя класса объекта, на который ссылается указатель?
Выше пример, когда решается через дублирование virtual-кода каждый раз при наследовании. Другой способ есть?
Нельзя, к сожалению. Поиск показывает, что о рабочем способе просили еще в 2014 году и просьбы повторялись время от времени. Две из них.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Alexey Navoykov, 2015.09.14 07:40
Предложение к разработчикам. Надо бы ввести в язык функцию typeid, аналогично той, которая существует в C++. Она позволяет в рантайме узнать имя класса, к которому принадлежит данный объект. Причём не базового класса (как сейчас выдаёт ваш typename), а именно производного! Это очень необходимо. Иначе приходится городить огород, создавая функцию virtual string ClassName() в каждом производном классе. И кроме того, typeid также позволяет быстро сравнивать между собой объекты на принадлежность к одному классу (по уникальному id класса). А своими силами создавать уникальные id - это вообще пляски с бубнами.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5
Alexey Navoykov, 2019.01.17 04:14
Добавьте, пожалуйста, в MQL аналог функции typeid из С++, позволяющий получить информацию о полиморфном типе объекта (имя типа и его хэш-код):
Это необходимая вещь в ООП. Иначе приходится в каждом классе прописывать виртуальные методы для получения подобной информации, что выглядит костыльно и ненадёжно, учитывая что эта информация есть в системе.
Подскажите, как получить имя класса объекта, на который ссылается указатель?
Выше пример, когда решается через дублирование virtual-кода каждый раз при наследовании. Другой способ есть?
А почему не так:
А почему не так:
Потому что результат typename зависит, например, от const-модификатора метода, в котором идет вызов.
Вам смысл непонятен?! Возьмите "класс" в кавычки, "namespace" или другое имя. Не могут "user32.dll" и "User32.dll" родить два скопа.
А почему не могут? Почему принципиально нельзя одной .dll два скопа в соответствие поставить?
А почему не могут?
Потому что архитектурно решили, что больше одного скопа на одну DLL делать - лишнее.
Что не сделано, так это насильное приведение всех названий #import-библиотек к одному регистру.
Ренат сообщил, чем будет MQ заниматься ближайший год. Точнее, чем кто-то пропланировал заниматься. Время показывает, что все это вилами по воде.
К чему? Невозможно понять логику приоритетов исправлений и планов. Что-то правят сразу, что-то - годами не правят. Так и с планами. Ничего не понять и не спланировать.
Есть, как есть.
Потому что результат typename зависит, например, от const-модификатора метода, в котором идет вызов.
Тогда так: