Vejamos WinHttpConnect(). Não tem implementação para codificação de múltiplos bytes.
Posso usar uma DLL para shell e convertê-la?
Não. Não preciso disso em uma DLL. Sei que é uma opção, mas é errado...
wininet.dll funciona com todas as suas funções, mas Winhttp tem um bug tão bobo...
Se você pudesse chamar GetLastError do Kernel32, mas o mql4 é prejudicial e não permite fazer funções com nomes idênticos, mesmo com parâmetros diferentes...
A propósito, você já tentou executar este roteiro em sua máquina? talvez seja apenas um problema meu?
Entendo que é uma opção, mas não é a mesma coisa...
Por exemplo, todas as suas funções funcionam com wininet.dll, mas em Winhttp há uma banca tão idiota...
Se você pudesse chamar GetLastError do Kernel32, mas o mql4 é prejudicial e não permite fazer funções com nomes idênticos, mesmo com parâmetros diferentes...
A propósito, você já tentou executar este roteiro em sua máquina? talvez seja apenas um problema meu?
E se você inserir uma dll intermediária entre GetLastError_2 e Kernel32? Isso não funcionaria?
Entendo que é uma opção, mas não funciona dessa forma.
wininet.dll, por exemplo, todas as suas funções funcionam, mas Winhttp tem uma parada tão estúpida...
Se você pudesse chamar GetLastError do Kernel32, mas o mql4 é prejudicial e não permite fazer funções com nomes idênticos, mesmo com parâmetros diferentes...
Se eu tiver tempo, tentarei fazer um exemplo. Caso contrário... Este código C++ deve ser convertido para MQL4:
O cordão precisa ser substituído por um conjunto de nervuras e levar isso em consideração ao recalcular o tamanho.
Tenho-o assim:
inlinestd::wstring AnsiToUnicode(conststd::string &sSourceA, // Строка для преобразования.constint nCodePage) // Кодовая страница может быть одним из значений:// CP_ACP Системное умолчание Windows кодовых страниц ANSI.// CP_OEMCP Нынешняя система OEM кода страницы.// CP_MACCP Нынешняя система Macintosh код страницы.// CP_SYMBOL Символ кода страницы (42).// CP_THREAD_ACP Код Windows ANSI страницы для текущего потока. // CP_UTF7 UTF-7. Используйте это значение только тогда, когда вынужден от транспортного механизма 7-бит. Использование UTF-8 является предпочтительным.
{ // CP_UTF8 UTF-8.int nLength = 0;
std::wstring sStringW = L"";
if (sSourceA.size() == 0) return(sStringW);
if ((nLength = ::MultiByteToWideChar(nCodePage, 0, sSourceA.c_str(), -1, NULL, 0)) == 0) throw(_T("Ошибка в функции \"Utils::StringSTL::AnsiToUnicode()\". В строке отсутствуют символы."));
sStringW.resize(nLength - 1);
if ((nLength = ::MultiByteToWideChar(nCodePage, 0, sSourceA.c_str(), -1, LPWSTR(sStringW.c_str()), nLength)) == 0) throw(_T("Ошибка в функции \"Utils::StringSTL::AnsiToUnicode()\". Строка не преобразована."));
return(sStringW);
}
Vejamos WinHttpConnect(). Não tem implementação para codificação de múltiplos bytes.
Posso usar uma DLL para shell e convertê-la?
Não. Não preciso disso em uma DLL. Sei que é uma opção, mas é errado...
wininet.dll funciona com todas as suas funções, mas Winhttp tem um bug tão bobo...
Se você pudesse chamar GetLastError do Kernel32, mas o mql4 é prejudicial e não permite fazer funções com nomes idênticos, mesmo com parâmetros diferentes...
A propósito, você já tentou executar este roteiro em sua máquina? talvez seja apenas um problema meu?
Entendo que é uma opção, mas não é a mesma coisa...
Por exemplo, todas as suas funções funcionam com wininet.dll, mas em Winhttp há uma banca tão idiota...
Se você pudesse chamar GetLastError do Kernel32, mas o mql4 é prejudicial e não permite fazer funções com nomes idênticos, mesmo com parâmetros diferentes...
A propósito, você já tentou executar este roteiro em sua máquina? talvez seja apenas um problema meu?
Entendo que é uma opção, mas não funciona dessa forma.
wininet.dll, por exemplo, todas as suas funções funcionam, mas Winhttp tem uma parada tão estúpida...
Se você pudesse chamar GetLastError do Kernel32, mas o mql4 é prejudicial e não permite fazer funções com nomes idênticos, mesmo com parâmetros diferentes...
GetLastError() deve ser chamado de nível baixo --> RtlGetLastWin32Error(). Ilnur o sugeriu em seu tempo. Aqui estão alguns exemplos de como utilizá-lo.
WinHttpConnect() não funcionará em MQL4.
Nada funcionará com WinHttpConnect() em MQL4.
Você poderia tentar a conversão.
Se eu tiver tempo, tentarei fazer um exemplo. Caso contrário... Este código C++ deve ser convertido para MQL4:
O cordão deve ser substituído por um conjunto de nervuras e isto deve ser levado em conta ao recalcular o tamanho.Você poderia tentar a conversão.
Se eu tiver tempo, tentarei fazer um exemplo. Caso contrário... Este código C++ deve ser convertido para MQL4:
O cordão precisa ser substituído por um conjunto de nervuras e levar isso em consideração ao recalcular o tamanho.Tenho-o assim:
Eu tenho isto:
EMNIP, a norma não garante a localização da corda em um bloco contínuo de memória, portanto, o uso da construção &stringW[0] é muito difícil.
Basicamente, os mesmos ovos. Mas o meu é 100% de acordo com a norma :)
EMP, o padrão não garante a localização das cordas em um bloco de memória contíguo, portanto, o uso da construção &stringW[0] está repleto de perigos.
Os mesmos ovos em geral. Mas o meu é 100% de acordo com a norma :)
Eu não sabia...
Bem, parece que todas (provavelmente todas) as implementações da Microsoft estão bem com isto, eu não posso garantir as outras.