![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы начали писать?
У меня не создается новое соединение P2TCP c ошибкой CG_ERR_UNSUPPORTED
Я на Plazer пока тренируюсь. Подключается нормуль к срочнику, Но, есть какая-то ошибка, а может не ошибка. Пока не разобрался.
Ваша прога, ошибок не дает, но ничего не выводит - пусто/пусто.
Я на Plazer пока тренируюсь. Подключается нормуль к срочнику, Но, есть какая-то ошибка, а может не ошибка. Пока не разобрался.
Ваша прога, ошибок не дает, но ничего не выводит - пусто/пусто.
Можете прислать строку с аргументами, которые Вы используете в комаyде cg_conn_new() ?
Несколько лет назад не было никаких проблем.
В Plazer есть ошибка, я говорил с разработчиком.
Можете прислать строку с аргументами, которые Вы используете в комаyде cg_conn_new() ?
Несколько лет назад не было никаких проблем.
В Plazer есть ошибка, я говорил с разработчиком.
До такого еще не дошел. Вот из примера того на С:
В том примере такие параметры:
config.main.name = "ekapp";
config.main.mode = Mode::Realtime;
config.main.startId = 1000000;
config.plaza.type = "p2lrpcq";
config.plaza.host = "127.0.0.1";
config.plaza.port = "4001";
config.plaza.subs = "mq,replclient";
config.plaza.ini = "/home/user/expack/ini/ekapp.ini";
config.plaza.key = "11111111";
config.plaza.broker = "FZ00";
config.plaza.client = "J00";
Я думаю, что дело в моем не правильном переводе с C++ на Паскаль
В CGate.h , есть следующие объявления
Т.е пустые структуры, которые я перевел так
pcg_conn_t - это указатель на cg_conn_t
Н-р функция cd_conn_new объявлена так
Где параметр
cg_conn_t ** connptr
я истолковал так одна звездочка - говорит о том, что это переменная принимает данные,
а вторая звездочка говори т о том, что это указатель, поэтому в Паскале я записал так
cg_conn_new_t = function(settings: PAnsiChar; var connptr: pcg_conn_t): CG_RESULT; stdcall;
Скорее всего где-то не правильно транслировал :(
Добавлено
Но так как connptr - это все же объект (), то попробовал объявить cd_conn_t, так
pсg_conn_t = ^THandle; - указатель на объект Handle - не помогло
Одна звездочка это указатель (т.е. адрес) на объект, а две звездочки это указатель на указатель.
Интерпретируется они (две звездочки) в зависимости от контекста, т.е. компилятор ничего не знает о типе. Например, это может быть массив массивов.
Широко известный пример - ф-ия точки входа в программу: main(int argc, char** argv), где arg -число аргументов командной строки, а argv- массив строк параметров в командной строке (каждая строка передается по указателю).Вообще, в примере там строка "p2sys://127.0.0.1:4001;app_name=test_p2sys", у Вас p2tcp. Почему?
p2sys - это специальное соединение для управления роутером
Я нашел ошибку, соединение создается, но теперь не открывается :(
Ошибка была "app name=", а нужно "app_name="
Причем, после создания соединения, я проверяю его состояние (cg_conn_getstate)
и все нормально, нет ошибки
p2sys - это специальное соединение для управления роутером
Я нашел ошибку, соединение создается, но теперь не открывается :(
Ошибка была "app name=", а нужно "app_name="
Причем, после создания соединения, я проверяю его состояние (cg_conn_getstate)
и все нормально, нет ошибки
В примере для посылки заявки там три объекта создается:
Connection conn = new Connection("p2tcp://127.0.0.1:4001;app_name=ntest_send");
Publisher publisher = new Publisher(conn, "p2mq://FORTS_SRV;category=FORTS_MSG;name=srvlink;timeout=5000;scheme=|FILE|forts_messages.ini|message");
Listener listener = new Listener(conn, "p2mqreply://;ref=srvlink");
publisher как раз для посылки команды используется. У Вас так?
В примере для посылки заявки там три объекта создается:
Connection conn = new Connection("p2tcp://127.0.0.1:4001;app_name=ntest_send");
Publisher publisher = new Publisher(conn, "p2mq://FORTS_SRV;category=FORTS_MSG;name=srvlink;timeout=5000;scheme=|FILE|forts_messages.ini|message");
Listener listener = new Listener(conn, "p2mqreply://;ref=srvlink");
publisher как раз для посылки команды используется. У Вас так?
Прежде, чем создать publisher нужно открыть соединение
new Publisher(conn,