Cualquier pregunta de un PROFI a un SUPER PROFI - 1. - página 15

 
TheXpert:

Podrías intentar convertirte.

Si tengo tiempo, intentaré hacer un ejemplo. Por lo demás... Este código C++ debe ser convertido a MQL4:

wstring debe ser reemplazado por un array de ints y esto debe ser tenido en cuenta al recalcular el tamaño.
Hay que convertirlo a WORD. Es de 2 bytes e INT es de 4 bytes. Es decir, tendremos que meter dos personajes en una INT. Alto 2 bytes (primero) + bajo 2 bytes (segundo).
 
Zhunko:
Al fin y al cabo, tiene que estar en WORD. Es de 2 bytes e INT es de 4 bytes. Es decir, un INT debe contener dos caracteres. Alto 2 bytes (primero) + bajo 2 bytes (segundo).
Sí, a eso me refería cuando hablaba de la contabilidad del tamaño.
 

Deberías probarlo. Tal vez no haya problemas al utilizar directamente la función MultiByteToWideChar().

Para deslizarlo una matriz INT. De todos modos, es por referencia. ¿Qué diferencia hay? ¿Qué tipo tiene? No se rellena por tipo sino por bytes.

Pásalo también a WinHttpConnect().

 
Zhunko:

Deberías probarlo. Tal vez no haya problemas al utilizar directamente la función MultiByteToWideChar().

Para deslizarlo una matriz INT. De todos modos, es por referencia. ¿Qué diferencia hay? ¿Qué tipo tiene? No se rellena por tipo sino por bytes.

Pásalo también a WinHttpConnect().

hizo un 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);
}

Todavía no sé si MultiByteToWideChar funciona o no, pero registra las cadenas correctas

También he añadido

#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());
error 12005 - URL no válida
 

Se ha modificado la descripción de la función y se ha introducido una matriz en lugar de la cadena ServerName

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

Pero no... El mismo error.

        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);
 

La pregunta no es sobre el lenguaje MQL4. La pregunta es sobre C++. Mucha gente aquí conoce este idioma. Sólo necesito un consejo. No puse mi pregunta en el hilo de los novatos, ya que la gente que es nueva en programación en general suele visitarlo.

Scintilla

No encuentro ninguna instrucción en ruso sobre cómo instalar scintilla en Borland C++ Builder 6.0 Enterprise Edition. La búsqueda en Google no dio resultados. Ya he agotado mi tiempo buscando en los foros. Simplemente no hay información en ruso. No domino el inglés a este nivel. Hice esta pregunta en foros de C++ pero no hay respuestas. ¿Podría sugerirnos cómo lograrlo?
He descargado el instalador desde fuera del sitio (adjunto a este post)

Archivos adjuntos:
scintilla224.zip  1184 kb
 
drknn:

La pregunta no es sobre el lenguaje MQL4. La pregunta es sobre C++. Mucha gente aquí conoce este idioma. Sólo necesito un consejo. No puse mi pregunta en el hilo de los novatos, ya que la gente que es nueva en programación en general suele visitarlo.

Scintilla

No encuentro ninguna instrucción en ruso sobre cómo instalar scintilla en Borland C++ Builder 6.0 Enterprise Edition. La búsqueda en Google no dio resultados. Ya he agotado mi tiempo buscando en los foros. Simplemente no hay información en ruso. No domino el inglés a este nivel. Hice esta pregunta en foros de C++ pero no hay respuestas. ¿Podría sugerirnos cómo lograrlo?
He descargado el instalador desde fuera del sitio (adjunto a este post)

¿Quiere incrustarlo como VCL en el entorno? Tendrás que escribir el componente a mano, no veo otra forma...
 
sergeev:

Se ha modificado la descripción de la función y se ha introducido una matriz en lugar de la cadena ServerName

Pero no... El mismo error.

Esto puede ser estúpido pero... ¿Has probado a añadir HTTP:// a la URL?
 
alsu:
¿Quiere incrustarlo como VCL en el entorno? Tendrás que escribir el componente a mano, no veo otra forma...

Por lo que tengo entendido, no necesito 1 componente, sino toda una paleta de componentes. Intenté incrustar una paleta SynEdit similar en Borland.Delphi.v7.0. Lo que no me gusta es que la numeración de las líneas del editor de texto comienza desde el 01 y no desde el 1 como está implementado en el Notepad++. Además, no pude encontrar un componente en SynEdit que permita resaltar la sintaxis del lenguaje del usuario. Todo tipo de C++, pascal, java, php... ...pero sin lenguaje personalizado. O tal vez lo hay, pero no pude encontrarlo. Así que pensé que hay una alternativa - skintilla - he leído sobre ella en Internet. Así que busqué en Google las instrucciones. Pero no hay nada. En los foros lo mismo. Sin embargo, he visto que la gente escribe sobre el uso de tal o cual componente de Skintilla. Pero nadie menciona cómo llegó a la paleta. Es raro...
 

Necesito paletas como esta

Razón de la queja: