Qualquer pergunta de um PROFI para um SUPER PROFI - 1. - página 15

 
TheXpert:

Você poderia tentar a conversão.

Se eu tiver tempo, vou tentar 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.
Ela precisa ser convertida para WORD. São 2 bytes e INT é 4 bytes. Isto é, teremos que colocar dois caracteres em um INT. Alta 2 bytes (primeiro) + baixa 2 bytes (segundo).
 
Zhunko:
Afinal, tem que estar em WORD. São 2 bytes e INT é 4 bytes. Ou seja, um INT deve conter dois caracteres. Alta 2 bytes (primeiro) + baixa 2 bytes (segundo).
Sim, era isso que eu queria dizer quando estava falando de contabilidade por tamanho.
 

Você deveria tentar. Talvez não haja problemas ao usar a função MultiByteToWideChar() diretamente.

Para lhe dar uma matriz INT. De qualquer forma, é por referência. Que diferença faz - que tipo tem? É preenchido não por tipo, mas por bytes.

Passe-o também para WinHttpConnect().

 
Zhunko:

Você deveria tentar. Talvez não haja problemas ao usar a função MultiByteToWideChar() diretamente.

Para lhe dar uma matriz INT. De qualquer forma, é por referência. Que diferença faz - que tipo tem? É preenchido não por tipo, mas por bytes.

Passe-o também para WinHttpConnect().

fez um cheque

#import "kernel32.dll"
   int MultiByteToWideChar(int CodePage, int dwFlags,
                           string lpMultiByteStr, int cbMultiByte, int &lpWideCharStr[],int cchWideChar);
#import

int start()
{
        int wbuf[]; string st="1234";
        int n=MultiByteToWideChar (65001, 0, st, -1, wbuf, 0);
        ArrayResize(wbuf, n); MultiByteToWideChar (65001, 0, st, -1, wbuf, n);
        st=""; for (int i=0; i<n; i++) st=st+" "+DoubleToStr(wbuf[i],0); Print("arr="+st);
        st=""; for(i=0; i<ArraySize(wbuf); i++) for(int j=0; j<4; j++) st=st+CharToStr((wbuf[i]>>(j*8))&0xFF); 
        Print("after="+st);
}

Eu ainda não sei se o MultiByteToWideChar funciona ou não, mas ele registra as cordas certas

Eu também acrescentei

#import "ntdll.dll"
   int RtlGetLastWin32Error();
   int RtlSetLastWin32Error(int dwErrCode);
#import 
        hSession=WinHttpOpen("MqlHttp", 0, "", "", 0);
        Print("hSession="+Http.hSession);

        RtlSetLastWin32Error(0); //сбрасываем последний код ошибки
        hConnect=WinHttpConnect(hSession, "www.mql4.com", 80, 0);
        if (hConnect<=0) Print("-Err create Connect "+RtlGetLastWin32Error());
erro 12005 - URL inválido
 

Reformulou a descrição da função, colocou uma matriz no lugar da cadeia ServerName

int WinHttpConnect(int hSession, int& pswzServerName[], int nServerPort, int dwReserved);

Mas não... O mesmo erro.

        RtlSetLastWin32Error(0); //сбрасываем
        int wHost[]; int n=MultiByteToWideChar (65001, 0, "www.mql4.com", -1, wHost, 0);
        ArrayResize(wHost, n); MultiByteToWideChar (65001, 0, "www.mql4.com", -1, wHost, n);
        hConnect=WinHttpConnect(hSession, wHost, 80, 0);
 

A pergunta não é sobre a linguagem MQL4. A questão é sobre C++. Muitas pessoas aqui conhecem este idioma. Eu só preciso de alguns conselhos. Não coloquei minha pergunta ao tópico de novatos, já que as pessoas que são novatas em programação em geral o visitam com freqüência.

Scintilla

Não consigo encontrar nenhuma instrução em russo sobre como instalar scintilla no Borland C++ Builder 6.0 Enterprise Edition. A pesquisa no google não produziu resultados. Já esgotei meu tempo procurando em fóruns. Simplesmente não há informações em russo. Eu não sou bem versado em inglês neste nível. Fiz esta pergunta em fóruns de C++, mas sem respostas. Você poderia, por favor, sugerir como realizar isto?
Eu baixei o instalador de fora do site (anexado a este post)

Arquivos anexados:
scintilla224.zip  1184 kb
 
drknn:

A pergunta não é sobre a linguagem MQL4. A questão é sobre C++. Muitas pessoas aqui conhecem este idioma. Eu só preciso de alguns conselhos. Eu não coloquei minha pergunta no tópico dos novatos, já que as pessoas que são novatas em programação em geral a visitam com freqüência.

Scintilla

Não consigo encontrar nenhuma instrução em russo sobre como instalar scintilla no Borland C++ Builder 6.0 Enterprise Edition. A pesquisa no google não produziu resultados. Eu já esgotei a busca através dos fóruns. Simplesmente não há informações em russo. Eu não sou bem versado em inglês neste nível. Fiz esta pergunta em fóruns de C++, mas sem respostas. Você poderia, por favor, sugerir como realizar isto?
Fiz o download do instalador de fora do local (anexo a este post)

Você quer incorporá-lo como VCL no ambiente? Você terá que escrever o componente à mão, não vejo outra maneira...
 
sergeev:

Reformulou a descrição da função, colocou uma matriz no lugar da cadeia ServerName

Mas não... O mesmo erro.

Isto pode ser estúpido, mas... Você já tentou adicionar HTTP:// à URL?
 
alsu:
Você quer incorporá-lo como VCL no ambiente? Você terá que escrever o componente à mão, não vejo outra forma...

Tanto quanto sei, não preciso de um componente, mas de uma paleta completa de componentes. Tentei incorporar uma paleta SynEdit similar no Borland.Delphi.v7.0. O que eu não gosto é que a numeração de linhas do editor de texto comece a partir de 01 e não a partir de 1, como é implementado no Notepad++. Além disso, não foi encontrado um componente no SynEdit que permitisse destacar a sintaxe da linguagem do usuário. Todos os tipos de C++, pascal, java, php... ...mas sem linguagem personalizada. Ou talvez haja, mas não consegui encontrá-lo. Por isso pensei que existe uma alternativa - skintilla - li sobre isso na Internet. Portanto, pesquisei no Google para obter instruções. Mas não há nada. Nos fóruns, a mesma coisa. Entretanto, já vi pessoas escrevendo sobre o uso deste ou daquele componente da Skintilla. Mas ninguém menciona como chegou à paleta. É esquisito...
 

Eu preciso de paletas como esta

Razão: