taşındı ve şimdi yanlış url yerine 87 hatası çıktı. Ve bu daha da kötü :) Elbette WinHttpConnect'te çıktı. Ne düzeltilebilir? yoksa absi2unicode işlevi yanlış mı?
#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);
}
taşındı ve şimdi yanlış url yerine 87 hatası çıktı. Ve bu daha da kötü :) Elbette WinHttpConnect'te çıktı. Ne düzeltilebilir? yoksa absi2unicode işlevi yanlış mı?
Bu gönderiye, metin belgesi içeren bir arşiv eklenmiştir. Bunun en azından bir şekilde size yardımcı olup olmayacağını bile bilmiyorum, ama her durumda, bakın - belgesel küçük. Rusça yazı tiplerinin kodlanması hakkında gerçekten bir konuşma var, ancak belki belgenin içeriği size bir fikir verebilir. Benim aksime sen C++ biliyorsun.
taşındı ve şimdi yanlış url yerine 87 hatası çıktı. Ve bu daha da kötü :) Elbette WinHttpConnect'te çıktı. Ne düzeltilebilir? yoksa absi2unicode işlevi yanlış mı?
Dönüştürme için standart API işlevlerini kullanmak daha iyidir.
İşte bir örnek kod:
#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);
}
alsu : Yani wininet.dll aracılığıyla yapılıyor, ben bu şekilde ...
Şuradan dikkatlice bakın:
// 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.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
belki aptallık, ama ... HTTP:// URL'ye eklemeye çalışmadı mı?
Unicode ile mücadele etmeye devam ediyorum.
taşındı ve şimdi yanlış url yerine 87 hatası çıktı. Ve bu daha da kötü :)
Elbette WinHttpConnect'te çıktı. Ne düzeltilebilir? yoksa absi2unicode işlevi yanlış mı?
Unicode ile mücadele etmeye devam ediyorum.
taşındı ve şimdi yanlış url yerine 87 hatası çıktı. Ve bu daha da kötü :)
Elbette WinHttpConnect'te çıktı. Ne düzeltilebilir? yoksa absi2unicode işlevi yanlış mı?
Bu gönderiye, metin belgesi içeren bir arşiv eklenmiştir. Bunun en azından bir şekilde size yardımcı olup olmayacağını bile bilmiyorum, ama her durumda, bakın - belgesel küçük. Rusça yazı tiplerinin kodlanması hakkında gerçekten bir konuşma var, ancak belki belgenin içeriği size bir fikir verebilir. Benim aksime sen C++ biliyorsun.
Burada nasıl yapıldığını görün.
bir nevi inançsız. PYHYPY'yi MQL'de kendiniz yeniden yapabilir misiniz?
Unicode ile mücadele etmeye devam ediyorum.
taşındı ve şimdi yanlış url yerine 87 hatası çıktı. Ve bu daha da kötü :)
Elbette WinHttpConnect'te çıktı. Ne düzeltilebilir? yoksa absi2unicode işlevi yanlış mı?
Dönüştürme için standart API işlevlerini kullanmak daha iyidir.
İşte bir örnek kod:
Yani wininet.dll aracılığıyla yapılıyor, ben bu şekilde ...
Şuradan dikkatlice bakın:
Bu yerden oraya dikkatlice bakın: