Ошибки, баги, вопросы - страница 2580
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1. В MQL копируется не указатель, а строка.
Раздел 3.3
2. Вы в MQL выделили строку в 200 символов. Потом скопировали в неё 164 символа. После этого, посмотрите размер строки в MQL. Он остался 200.
Длина а не размер! Длина в символах, размер в байтах.
Проверил, после получения строки из 164 символов, да длина так же осталась 200.
Какие мысли по этому поводу?
По этому чтобы было правильно, я отказался от memcpy, и использовал wcscpy или wcsncpy.
Результат, постом выше.
Я имел ввиду sizeof( wchar_t* ).
Раздел 3.3
Вам бы лучше со мной не спорить, а прочитать повнимательней эту статью. И разобраться, что там происходит.
Тогда и проблем не будет.
То что Вы хотите сделать, на самом деле не так сложно.
Длина а не размер! Длина в символах, размер в байтах.
Проверил, после получения строки из 164 символов, да длина так же осталась 200.
Какие мысли по этому поводу?
Почему так происходит, уже объяснял выше.
То что Вы хотите сделать, на самом деле не так сложно.
Ну так подскажите раз не так сложно.
Или вы считаете что это нормальное поведение?
Ну так подскажите раз не так сложно.
Или вы считаете что это нормальное поведение?
То есть, Вы даже не планируете ни в чём разбираться, просто дай Вам готовый рецепт и всё?
Я не понимаю, зачем Вам заниматься программированием, если для Вас это в тягость, но это Ваше дело.
Как Вы думаете, захочет ли кто-то Вам помогать, если Вы задаёте вопрос, и не хотите показывать подробный воспроизводимый код,
то что Вам пишут или не читаете, или спорите с теми, кто знает намного больше?
Поэтому, готового рецепта не будет. Напишу общий принцип получения строки из DLL. Код напишете сами, если считаете себя программистом.
1. В MQL создаёте массив ushort.
2. Инициализируете его.
3. Передаёте массив и его размер в DLL.
4. В DLL копируете строку в этот массив, используя функцию wmemcpy_s().
5. Возвращаете из DLL длину скопированной строки.
6. В MQL создаёте строку из массива, используя функцию ShortArrayToString().
На одном из серверов (не MQ) МТ5 сходит с ума - грузит проц на 100% и интенсивно выводит в лог такие сообщения по разным инструментам:
Графики моргают. Работать невозможно.
Есть ли возможность локально это пофиксить или единственный выход - ждать пока на сервере, видимо, не закончат какие-то игры?
То есть, Вы даже не планируете ни в чём разбираться, просто дай Вам готовый рецепт и всё?
Я не понимаю, зачем Вам заниматься программированием, если для Вас это в тягость, но это Ваше дело.
Как Вы думаете, захочет ли кто-то Вам помогать, если Вы задаёте вопрос, и не хотите показывать подробный воспроизводимый код,
то что Вам пишут или не читаете, или спорите с теми, кто знает намного больше?
Поэтому, готового рецепта не будет. Напишу общий принцип получения строки из DLL. Код напишете сами, если считаете себя программистом.
1. В MQL создаёте массив ushort.
2. Инициализируете его.
3. Передаёте массив и его размер в DLL.
4. В DLL копируете строку в этот массив, используя функцию wmemcpy_s().
5. Возвращаете из DLL длину скопированной строки.
6. В MQL создаёте строку из массива, используя функцию ShortArrayToString().
Да где вы увидели тут спор? Идёт рабочее обсуждение, не нужно переиначивать смысл в курятник, с высокомерным пафосом.
Не кто готового от вас не чего не просил. Думал вы с указателем знаете решение, ан нет, ошибся.
Это вы не читаете тему, тут давно уже о массивах была речь, и все прекрасно об этом знают.
И к массивам я давно уже склоняюсь. Но раз в mql есть string, почему бы его не использовать напрямую.
Вот как раз за баг в mql-овском string, копирования в него указателя, тут и идёт речь.
Я вам больше скажу, что не только через ushort можно решить всё. Вариантов с массивами много.
Но в моём случае не хочется использовать массивы, не всегда это рационально по структуре кода.
И тем более когда есть mql-овский string, с которым можно работать на прямую, но который должен работать корректно.