Il a décollé, et maintenant au lieu d'une url invalide, c'est l'erreur 87 qui s'affiche. Et ceci est encore pire :) Je l'ai trouvé dans WinHttpConnect. Que puis-je faire ? ou la fonction absi2unicode est-elle fausse ?
#import "Winhttp.dll"int WinHttpOpen(string pwszUserAgent, int dwAccessType,
string pwszProxyName, string pwszProxyBypass, int dwFlags);
int WinHttpConnect(int hSession, /*string*/int& pswzServerName[], int nServerPort, int dwReserved);
#import "ntdll.dll"int RtlGetLastWin32Error();
int RtlSetLastWin32Error(int dwErrCode);
#import
start()
{
int hSession=WinHttpOpen("MqlHttp", 0, "", "", 0);
Print("hSession="+hSession);
string aHost="www.mql4.com";
RtlSetLastWin32Error(0); //сбрасываем последний код ошибкиint wHost[100]; int n=ansi2unicode(aHost, wHost);
int hConnect=WinHttpConnect(hSession, wHost, 80, 0);
if (hConnect<=0) Print("-Err create Connect "+RtlGetLastWin32Error());
}
// функция преобразования строки в массив//--------------------------------------------------------------- ansi2unicodeint ansi2unicode(string str, int &arr[])
{
int max=ArraySize(arr); int pos=0, i=0, x;
bool f=false;
for (x=0; i<max; f=!f, pos++) // пока есть место в массиве
{
int c=StringGetChar(str, pos); if (c==0) break; // конец строкиif (!f) x=c; else { i++; arr[i]=x+(c<<16); } // собираем символы в пары и складываем в массив
}
if (i>=max) { x=0; i=max-1; } elseif(!f) x=0; // терминирующий ноль
i++; arr[i]=x;
return(i);
}
Il a décollé, et maintenant l'erreur 87 apparaît au lieu de la mauvaise url. Et ceci est encore pire :) Je l'ai trouvé dans WinHttpConnect. Que puis-je faire ? ou la fonction absi2unicode est-elle fausse ?
Une archive contenant un document texte est jointe à ce message. Je ne sais pas si cela peut vous aider, mais jetez-y quand même un coup d'œil - c'est un petit document. Il y est question de l'encodage des polices russes, mais le contenu du document vous donnera peut-être une idée. Vous connaissez C++, contrairement à moi.
il a décollé, et maintenant, au lieu d'une url incorrecte, l'erreur 87 s'affiche. C'est encore pire :) C'est apparu dans WinHttpConnect, bien sûr. Que puis-je faire ? ou la fonction absi2unicode est-elle incorrecte ?
Il est préférable d'utiliser les fonctions API standard pour la conversion.
Voici un exemple de code :
#import "kernel32.dll"int MultiByteToWideChar(int CodePage, int dwFlags, string lpMultiByteStr, int cbMultiByte, int& lpWideCharStr[], int cchWideChar);
#import "Winhttp.dll"int WinHttpOpen(int pwszUserAgent[], int dwAccessType, string pwszProxyName, string pwszProxyBypass, int dwFlags);
int WinHttpConnect(int hSession, int pswzServerName[], int nServerPort, int dwReserved);
int WinHttpCloseHandle(int hInternet);
#importvoid start()
{
int lpWideCharStr[];
L("MqlHttp", lpWideCharStr);
int hInternet = WinHttpOpen(lpWideCharStr, 0, "", "", 0);
if (hInternet > 0)
{
L("www.mql4.com", lpWideCharStr);
int hConnect = WinHttpConnect(hInternet, lpWideCharStr, 80, 0);
if (hConnect > 0)
{
WinHttpCloseHandle(hConnect);
}
WinHttpCloseHandle(hInternet);
}
}
int L(string lpMultiByteStr, int& lpWideCharStr[])
{
int cchWideChar = MultiByteToWideChar(0, 0, lpMultiByteStr, -1, lpWideCharStr, 0);
ArrayResize(lpWideCharStr, 1 + cchWideChar / 2);
MultiByteToWideChar(0, 0, lpMultiByteStr, -1, lpWideCharStr, cchWideChar);
return (cchWideChar);
}
Surveillez-la attentivement à partir de ce point :
// Re-reads saved POST data byte-to-byte from file in the pseudo-character array// we need to send with HttpSendRequestA. This is due to the fact I know no clean// way to cast strings _plus_ binary file contents to a character array in MQL.// If you know how to do it properly feel free to contact me.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
C'est peut-être idiot, mais... Avez-vous essayé d'ajouter HTTP:// à l'URL ?
continuent à se battre avec l'unicode.
Il a décollé, et maintenant au lieu d'une url invalide, c'est l'erreur 87 qui s'affiche. Et ceci est encore pire :)
Je l'ai trouvé dans WinHttpConnect. Que puis-je faire ? ou la fonction absi2unicode est-elle fausse ?
continuent à se battre avec l'unicode.
Il a décollé, et maintenant l'erreur 87 apparaît au lieu de la mauvaise url. Et ceci est encore pire :)
Je l'ai trouvé dans WinHttpConnect. Que puis-je faire ? ou la fonction absi2unicode est-elle fausse ?
Une archive contenant un document texte est jointe à ce message. Je ne sais pas si cela peut vous aider, mais jetez-y quand même un coup d'œil - c'est un petit document. Il y est question de l'encodage des polices russes, mais le contenu du document vous donnera peut-être une idée. Vous connaissez C++, contrairement à moi.
Voyez comment cela se passe ici.
semble avoir tort. Pouvez-vous le réécrire vous-même en MQL ?
continuent à se battre avec l'unicode.
il a décollé, et maintenant, au lieu d'une url incorrecte, l'erreur 87 s'affiche. C'est encore pire :)
C'est apparu dans WinHttpConnect, bien sûr. Que puis-je faire ? ou la fonction absi2unicode est-elle incorrecte ?
Il est préférable d'utiliser les fonctions API standard pour la conversion.
Voici un exemple de code :
C'est fait via wininet.dll, donc je peux...
Surveillez-la attentivement à partir de ce point :
Regardez attentivement à partir de ce point :