Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
а зачем заремили следующий?
2. Та я его по необходимости только включаю, чтоб память не жрал зазря. // У меня тут несколько терминалов запущено.
Затем, что в отдельных случаях надо передавать строку- а в отдельных- число или указатель на массив интов.
так а как вызов происходит? может потому и лается?
несоответствие типов.
не вижу строк в упор
так а как вызов происходит? может потому и лается?
несоответствие типов.
не вижу строк в упор
так а как вызов происходит? может потому и лается?
несоответствие типов.
- int, стандартная ширина 4 байта
- любой массив- т.к. он передается адресом- т.е. передается 4-байтовый указатель
- строка, т.к. она опять же передается указателем
Вопрос в том, что указателя в мокле нет, а потребность передавать в SendMessage
как int, так и string / массивы- есть.
Ага, хреново только тогда, когда надо по-разному использовать один и тот же параметр.
Нет, не хреново. Для этого есть способы, как обойти.
Например:
И после этого используем вариант с int. Пример можно посмотреть в моих скриптах.Да даже с strcat не прокатывает- один из параметров- вообще-то [in, out]
Alerter.mq4.
Посмотрите и проверьте. Все прокатывает.
...
PS
Clipboard.mq4 - там обратный пример.
Вообще-то имя функции не lstrcat, а lstrcatA (либо lstrcatW).
Но использование конкатенации строк для того чтобы получить адрес переменной - это очень не рациональный способ. Я бы даже сказал, очень глупый способ. Во-первых, тратятся ресурсы на выполнение ненужной операции. Во-вторых, надо всегда следить, чтобы размер выделенной памяти для первой строки был достаточным для вмещения обеих строк (нуль-терминатных). В противном случае огребёшь проблем.
Я использую для этих целей функцию int CharPrevA(string lpszStart,string lpszCurrent) из библиотеки "user32.dll". В обоих параметрах указываешь одну и ту же строковую переменную, и на выходе получаешь адрес этой переменной: address=CharPrevA(mystring,mystring);
Есть также вариант с помощью функции int CharNextA(string lpszCurrent) из той же библиотеки. Её надо использовать так: address=CharNextA(mystring)-1;
В общем есть ещё масса других, более извращённых вариантов :) Но те, что я привёл, по-моему самые простые. Если у кого есть более изящное решение, то выкладывайте.