기사 작성해 주셔서 감사합니다. 흥미로 웠습니다.
ModIcq는 수정 없이도 완벽하게 사용할 수 있지만 수정된 버전으로 작업하는 것이 더 쉽습니다 :)
IcqMod.dll은 Ansi 문자열로 작동하고 MT5에서는 문자열이 유니코드 형식이기 때문에 MT5에서 직접 사용할 수 없습니다.
정확히는 아닙니다. StringToCharArray를 사용하여 변환할 수 있습니다. 예를 들어, 다음 코드는 저에게 효과적입니다.
struct ICQ_CLIENT { uchar status; ushort sequence; ulong sock; }; #import "IcqMod.dll" ulong ICQConnect(ICQ_CLIENT& client, uchar& host[], ushort port, uchar& login[], uchar& pass[], int proxy); void ICQClose(ICQ_CLIENT& client); ulong ICQSendMsg(ICQ_CLIENT& client, uchar& uin[], uchar& message[]); ulong ICQReadMsg(ICQ_CLIENT& client, uchar& uin[], uchar& msg[], int& msglen); #import void OnStart() { // 문자열을 문자 배열로 변환하여 dll에 전달합니다. uchar login[], password[], server[]; StringToCharArray("123456789", login); StringToCharArray("password", password); StringToCharArray("login.icq.com", server); // 연결 ICQ_CLIENT client; ICQConnect(client, server, 5190, login, password, 0); for (;;) { uchar uinR[10], msgR[512]; int len = 0; // 수신 메시지 확인 ICQReadMsg(client, uinR, msgR, len); if (len > 0) { string uinStr = CharArrayToString(uinR), // 발신자 UIN msgStr = CharArrayToString(msgR); // 메시지 uchar msgS[]; // 메시지 수신: 앞에 추가하고 다시 보냅니다. StringToCharArray("수신됨: " + msgStr, msgS); ICQSendMsg(client, uinR, msgS); } Sleep(100); } }
하지만 매번 변환하는 것은 불편하기 때문에 라이브러리가 훨씬 더 유용합니다.
프록시에 대해서도 생각해봤습니다. 로컬 컴퓨터에서 적절하게 작동하는 몇 가지 설정이 있을까요? 즉, 프록시를 사용하지 않으면 일부 기본 설정이 프록시에 설정되어 모든 것이 작동합니다. 프록시가 있는 변형과 없는 변형에 대해 라이브러리에서 2 개의 연결 기능을 만드는 옵션으로 다음을 수행합니다.
라이브러리에서 변경된 사항은 문자열의 전달된 값 유형에만 영향을 미쳤을 뿐만 아니라(char*였다가 wchar_t*가 됨). 너무 간단합니다. 전송된 메시지의 형식이 변경되어(dll의 소스 코드에서 BuildQuery_SendMsg_Unicode 함수 참조) 네이티브(바이너리)가 아닌 범용(HTML)이 되었습니다. IcqMod를 통해 전송된 러시아어 리터럴이 올바르게 수신된다는 사실은 테스트 중인 네이티브 ICQ 프로그램의 장점입니다. http://wap.ebuddy.com/ 또는 대체 ICQ 관리자에서 러시아어 메시지 수신을 테스트하면 키릴 문자 대신 낙서가 표시됩니다. 내 프로젝트가 키릴 문자뿐만 아니라 전 세계의 다른 언어에서도 올바르게 작동하는 12 개의 ICQ 관리자를 시도했습니다. 물론 광고에 대해 죄송합니다.
프록시에 대해. 나는 테스트했지만 로컬이 아니라 원격 SOCK4 / SOCK5를 테스트했습니다. 나는 그들과 함께 일하지 못했습니다. 그래서 프로젝트에서 전혀 사용하지 않기로 결정했습니다. 필요한 경우 시도해 보겠습니다.감사합니다! 아주 명확했습니다.
그래서 오랫동안 이 스레드를 방문하지 않았습니다. 내 icq_power.mqh가 컴파일되지 않고 *2 Cpp 컴파일러 02:50:00 MS Visual Studio 컴파일러가 시스템에 설치되어 있지 않거나 컴파일러 초기화에 실패했습니다*라고 표시됩니다.
무슨 뜻일까요?
그래서 오랫동안 이 스레드를 방문하지 않았습니다. 내 icq_power.mqh가 컴파일되지 않고 *2 Cpp 컴파일러 02:50:00 MS Visual Studio 컴파일러가 시스템에 설치되어 있지 않거나 컴파일러 초기화에 실패했습니다*라고 표시됩니다.
무슨 뜻일까요?
다음을 의미합니다.
MS Visual Studio 컴파일러가 시스템에 설치되어 있지 않습니다.
또는
컴파일러 초기화에 실패했습니다.
무슨 뜻일까요?
http://wap.ebuddy.com/ 또는 대체 ICQ 관리자에서 러시아어 메시지 수신을 테스트해 보면 키릴 문자 대신 낙서가 표시됩니다. 나는 내 프로젝트가 키릴 문자뿐만 아니라 세계의 다른 언어에서도 올바르게 작동하는 12 개의 ICQ 관리자를 시도했습니다. 물론 광고에 대해 죄송합니다.
두 가지 질문이 있습니다:
1) x32 시스템에서도 여전히 작동하나요? (확인할 기회가 없습니다).
2) 아무도 x64 용으로 재 설계하지 않았습니까? (x64 미만에서는 작동하지 않음) .
나는 대답에 매우 감사 할 것입니다. 나는 그것을 다시 만들려고 노력했다 - 그것은 작동하지 않았다 - 내가 일할 때, 그것은 충돌한다.
2013.11.07 02:14:24 icq_demo (EURUSD.m,M1) Status_RECV_ERROR추신 : 정확히 ICQ가 필요합니다 ...
새로운 기고글 MQL5에서 ICQ 와 Expert Advisor 사이의 연결 가 게재되었습니다:
본 문서는 Expert Advisor와 ICQ 사용자 간의 정보 교환 방법을 설명하고 있으며, 몇 가지 예가 제시되어 있습니다. 고객 단말기에서 원격으로 ICQ 클라이언트를 통해 휴대폰이나 PDA로 거래 정보를 제공받으려는 분들에게 흥미로운 자료가 될 것입니다.
1번 그림. ICQ 클라이언트와 문자 메시지를 교환할 수 있게 해주는 Expert Advisor를 시연중
작성자: Andrey Voytenko