в мт4 32 битные указатели
замените SOCKET64 на SOCKET32 в вызовах функций
Огромное спасибо!! заработало, везде заменил на 32 битные указатели, есть ещё один вопрос, выдаётся на строчке " int res=WSAStartup(MAKEWORD(2,2), wsaData);" предуплеждение "check operator precedence for possible error; use parentheses to clarify precedence TestServer.mq4 57 26" с чем может быть связано предупреждение?
варнинг на приведении типов. ему define не нравится. надо скобок побольше и явного приведения к int.
не напрягает особо.
файлы
У меня ваш код заработал.
в Socketlib заменил одну строку
#define SOCKET64 uint
У меня ваш код заработал.
в Socketlib заменил одну строку
#define SOCKET64 uint
ну это понятно) когда уже про указатели нам наш друг подсказал.
варнинг на приведении типов. ему define не нравится. надо скобок побольше и явного приведения к int.
не напрягает особо.
Если Вам не трудно, пожалуйста подкорректируйте мои файлы чтоб не было варнингов, если это возможно)
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет, переписал с mql5 на mql4 вот эту статью https://www.mql5.com/ru/articles/2599, после установки советника появляется ошибка:
Access violation read to 0x0000000A in 'Ws2_32.dll'
вот кусок из кода
// биндимся к адресу и порту
Print("try bind..."+Host+":"+string(Port));
char ch[]; StringToCharArray(Host,ch);
sockaddr_in addrin;
addrin.sin_family=AF_INET;
addrin.sin_addr.u.S_addr=inet_addr(ch);
addrin.sin_port=htons(Port);
ref_sockaddr ref; ref.in=addrin;
if(bind(server,ref.ref,sizeof(addrin))==SOCKET_ERROR)
{
int err=WSAGetLastError();
if(err!=WSAEISCONN) { Print("-Connect failed error: "+WSAErrorDescript(err)+". Cleanup socket"); CloseClean(); return; }
}
// ставим в неблокирующий режим
int non_block=1;
res=ioctlsocket(server,(int)FIONBIO,non_block);
if(res!=NO_ERROR) { Print("ioctlsocket failed error: "+string(res)); CloseClean(); return; }
Print("start server ok");
Ошибка вылазит на строчке if(bind(server,ref.ref,sizeof(addrin))==SOCKET_ERROR)
Может кто с этой проблемой сталкивался?