Qualsiasi domanda da un PROFI a un SUPER PROFI - 1. - pagina 15

 
TheXpert:

Potresti provare a convertire.

Se ho tempo, cercherò di fare un esempio. Altrimenti... Questo codice C++ deve essere convertito in MQL4:

wstring dovrebbe essere sostituito con un array di ints e questo dovrebbe essere preso in considerazione quando si ricalcola la dimensione.
Deve essere convertito in WORD. È 2 byte e INT è 4 byte. Cioè dovremo mettere due personaggi in un INT. Alto 2 byte (primo) + basso 2 byte (secondo).
 
Zhunko:
Deve essere in WORD, dopo tutto. È 2 byte e INT è 4 byte. Cioè, un INT deve contenere due caratteri. Alto 2 byte (primo) + basso 2 byte (secondo).
Sì, è quello che intendevo quando parlavo di contabilità delle dimensioni.
 

Dovresti provarlo. Forse non ci saranno problemi quando si usa direttamente la funzione MultiByteToWideChar().

Per infilarlo un array INT. È comunque per riferimento. Che differenza fa - che tipo ha? Non si riempie per tipo ma per byte.

Passatelo anche a WinHttpConnect().

 
Zhunko:

Dovresti provarlo. Forse non ci saranno problemi quando si usa direttamente la funzione MultiByteToWideChar().

Per infilarlo un array INT. È comunque per riferimento. Che differenza fa - che tipo ha? Non si riempie per tipo ma per byte.

Passatelo anche a WinHttpConnect().

ha fatto un assegno

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

Non so ancora se MultiByteToWideChar funziona o no, ma registra le stringhe giuste

Ho anche aggiunto

#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());
errore 12005 - URL non valido
 

Rielaborata la descrizione della funzione, infilato un array al posto della stringa ServerName

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

Ma non l'ha fatto... Stesso errore.

        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 domanda non riguarda il linguaggio MQL4. La domanda riguarda il C++. Molte persone qui conoscono questa lingua. Ho solo bisogno di qualche consiglio. Non ho messo la mia domanda nel thread dei neofiti, poiché le persone che sono nuove alla programmazione in generale lo visitano spesso.

Scintilla

Non riesco a trovare istruzioni in russo su come installare scintilla in Borland C++ Builder 6.0 Enterprise Edition. La ricerca su Google non ha dato risultati. Ho già esaurito il mio tempo cercando nei forum. Semplicemente non ci sono informazioni in russo. Non ho una buona conoscenza dell'inglese a questo livello. Ho fatto questa domanda sui forum di C++ ma nessuna risposta. Potresti suggerire come realizzare questo?
Ho scaricato il programma di installazione da offsite (allegato a questo post)

File:
scintilla224.zip  1184 kb
 
drknn:

La domanda non riguarda il linguaggio MQL4. La domanda riguarda il C++. Molte persone qui conoscono questa lingua. Ho solo bisogno di qualche consiglio. Non ho messo la mia domanda nel thread dei neofiti, poiché le persone che sono nuove alla programmazione in generale lo visitano spesso.

Scintilla

Non riesco a trovare istruzioni in russo su come installare scintilla in Borland C++ Builder 6.0 Enterprise Edition. La ricerca su Google non ha dato risultati. Ho già esaurito il mio tempo cercando nei forum. Semplicemente non ci sono informazioni in russo. Non ho una buona conoscenza dell'inglese a questo livello. Ho fatto questa domanda sui forum di C++ ma nessuna risposta. Potresti suggerire come realizzare questo?
Ho scaricato il programma di installazione da fuori sede (allegato a questo post)

Volete incorporarlo come VCL nell'ambiente? Dovrai scrivere il componente a mano, non vedo altro modo...
 
sergeev:

Rielaborata la descrizione della funzione, infilato un array al posto della stringa ServerName

Ma non l'ha fatto... Stesso errore.

Questo può essere stupido ma... Hai provato ad aggiungere HTTP:// all'URL?
 
alsu:
Volete incorporarlo come VCL nell'ambiente? Dovrai scrivere il componente a mano, non vedo altro modo...

Per quanto ho capito, non ho bisogno di 1 componente, ma di un'intera tavolozza di componenti. Ho provato a incorporare una palette SynEdit simile in Borland.Delphi.v7.0. Quello che non mi piace è che la numerazione delle linee dell'editor di testo inizia da 01 e non da 1 come è implementato in Notepad++. Inoltre, non è stato possibile trovare un componente in SynEdit che permetta di evidenziare la sintassi della lingua dell'utente. Tutti i tipi di C++, pascal, java, php... ...ma nessun linguaggio personalizzato. O forse c'è, ma non l'ho trovato. Così ho pensato che c'è un'alternativa - skintilla - l'ho letto su Internet. Così ho cercato su Google le istruzioni. Ma non c'è niente. Sui forum la stessa cosa. Tuttavia, ho visto persone scrivere di usare questo o quel componente di Skintilla. Ma nessuno menziona come è arrivato alla tavolozza. È strano...
 

Ho bisogno di palette come questa