Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Она пашет даже в такой конструкции
т.е. без предварительной разметки s1.
Это надо осмыслить. Беру тайм аут
ОК, давайте. Адрес в профиле
не т адреса ловите тут
Действительно пашет !
А что такое в вашей функции
spar[0]='1';
для чего это надо ?
это ошметок :-) просто сначала сделал тупо изменение переданной строки а потом сверху залил строкой ПРОВЕРКА
Она пашет даже в такой конструкции
т.е. без предварительной разметки s1.
Это надо осмыслить. Беру тайм аут
это просто потому что по чистой случайности ЭТОТ кусок памяти где живет s1
ничему не мешает
разработчики писали про строки и DLL ... и рекомендуют заранее выделять достаточный размер строки
Опыты продолжаются
Сделал так:
Работает нормально. Но при выходе из MT4 получаем трабл
И непонятно почему.Опыты продолжаются
Сделал так:
И непонятно почему.нельзя создать - выделить память в DLL и вернуть это наверх
Память под строку должна - создаваться - выделяться в MT4
фактически вы только передаете адрес строки (в DLL), которую выделил MT4
и манипулируете этим массивом уже в DLL
Наконец то получен вариант который меня устроил. Итак DLL
в переменной n имеем максимальную длину строки результата, которая была размечена в советнике
функция StrPLCopy следит за тем, что бы мы не дай бог не записали в результат строку длиннее разметки
При этом рекомендуемый от Borland менеджер разделяемой памяти должен быть отключен. Если его включить получаем стабильный трабл при закрытии MT4
Описание функции в советнике выглядит так
А собственно вызов так
При этом получаем
Как видно, длина возвращенной строки ограничена разметкой.
И никакого мусора ...
Наконец то получен вариант который меня устроил. Итак DLL
И никакого мусора ...
:-)
Всем доброго времени суток!!!
Вопрос к разработчикам
Уважаемые разработчики, подскажите пожалуйста как можно загружать в стороннюю dll массивы произвольной размерности, а именнь одно, двух и более размерностей.
Заранее благодарен за ответы.
С наилучшими пожеланиями Debugger/
Наконец то получен вариант который меня устроил. Итак DLL
в переменной n имеем максимальную длину строки результата, которая была размечена в советнике
функция StrPLCopy следит за тем, что бы мы не дай бог не записали в результат строку длиннее разметки
При этом рекомендуемый от Borland менеджер разделяемой памяти должен быть отключен. Если его включить получаем стабильный трабл при закрытии MT4
Описание функции в советнике выглядит так
А собственно вызов так
При этом получаем
Как видно, длина возвращенной строки ограничена разметкой.
И никакого мусора ...
Код на mql:
Вывод такой:
Если переменные инициализируем различными строками:
То в журнале пишет правильно:
Видимо указатель строки с одинаковым значением хранит в одной области памяти. Интересно, это так задумано в пуле строк?
https://www.mql5.com/ru/forum/120200