
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Simulare i vecchi array di stringhe Ansi è disordinato, ma ancora possibile. (Questo dipende dal fatto che la DLL si comporti bene, in particolare se passa i dati indietro a MQL4 alterando il contenuto dell'array. Ho testato questo solo contro l'esempio di codice C++ in basso, non contro qualcosa di più realistico come la libreria MySql).
Per esempio, il codice di cui sopra funziona con la seguente DLL che fa una casella di messaggio per ogni stringa in un array e poi inverte la stringa prima di tornare a MT4:
Non riesco proprio a spiegare quanto siano utili i vostri snippet. Grazie mille! Sono andato avanti e ho scritto un wrapper MySQL in puro MQL4 (per la versione UNICODE) che comunica con libmysql.dll (ANSI) usando le tecniche che hai menzionato e le tecniche che ho trovato nella libreria EAX MySQL (MQL5).
Apprezzerei molto se tu potessi dare un'occhiata al mio codice lì e farmi sapere le cose da migliorare o contribuire ad esso perché sono abbastanza sicuro che potrebbe essere migliorato.
gchrmt4,
Potete per favore mostrarmi come posso passare una stringa attraverso una chiamata di funzione DLL, o indicarmi qualche codice di esempio?
Quello che sto cercando è la conferma che posso fare una chiamata come:
#import
int call_a_string_function(string this_is_a_string);
#importare
...
...
stringa pippo1 = "questa è una stringa
int retruncode = call_a_string_function(pippo1);
allora come sarebbe il codice C per la funzione di cui sopra? Sto solo cercando un esempio di routine.
ad esempio
int call_a_string_function(char *this_is_a_string);
ecc
Alcune persone dicono di usare un array o un array di char ecc. Sto cercando qualche chiarimento. Solo un semplice esempio sull'approccio migliore come hai menzionato la perdita di memoria ecc.
saluti
gorick
gchrmt4,
Potete per favore mostrarmi come posso passare una stringa attraverso una chiamata di funzione DLL, o indicarmi qualche codice di esempio?
Quello che sto cercando è la conferma che posso fare una chiamata come:
#import
int call_a_string_function(string this_is_a_string);
#importare
...
...
stringa pippo1 = "questa è una stringa
int retruncode = call_a_string_function(pippo1);
allora come sarebbe il codice C per la funzione di cui sopra? Sto solo cercando un esempio di routine.
ad esempio
int call_a_string_function(char *this_is_a_string);
ecc
Alcune persone dicono di usare un array o un array di char ecc. Sto cercando qualche chiarimento. Solo un semplice esempio sull'approccio migliore come hai menzionato la perdita di memoria ecc.
saluti
gorick
Sì, grazie per questo. Davvero ben presentato e quello che mi aspettavo. Tuttavia, sembra che io abbia problemi con le stringhe.
Ho creato un esempio da quel documento in C, ad esempio qui sotto, per accettare un valore di stringa come input e scriverlo in un file:
Scrivo i valori in un file per controllare.MQL è il seguente:
L'output del file è il seguente:Questi sono i valori delle stringhe: R foooooooooooo1
Restituisce solo la "R" o il primo carattere della stringa passata? Il "foooooooooooo1" è stato inserito solo per verificare che sto stampando correttamente.
Qualcuno ha un'idea di cosa sto sbagliando?
Sì, grazie per questo. Davvero ben presentato e quello che mi aspettavo. Tuttavia, sembra che io abbia problemi con le stringhe.
Ho creato un esempio da quel documento in C, ad esempio qui sotto, per accettare un valore di stringa come input e scriverlo in un file:
<rimozione>.
Qualcuno ha un'idea di cosa sto sbagliando?
Il problema è nel tuo codice C, non in MQL4.
%s in printf() significa "stringa Ansi". Devi usare %ls
Sì, grazie per questo. Davvero ben presentato e quello che mi aspettavo. Tuttavia, sembra che io abbia problemi con le stringhe.
Ho creato un esempio da quel documento in C, ad esempio qui sotto, per accettare un valore di stringa come input e scriverlo in un file:
Scrivo i valori in un file da controllare.MQL è il seguente:
L'output del file è il seguente:Questi sono i valori delle stringhe: R foooooooooooo1
Restituisce solo la "R" o il primo carattere della stringa passata? Il "foooooooooooo1" è stato inserito solo per verificare che sto stampando correttamente.
Qualcuno ha un'idea di cosa sto sbagliando?
Ciao,
Per favore usa il tasto SRC quando posti il codice. Grazie.
Questa volta l'ho modificato per te.
Salve,
Per favore usa il tasto SRC quando posti il codice. Grazie.
Questa volta l'ho modificato per te.
Scusate ragazzi, sono davvero nuovo a postare qui.
Grazie per il tuo contributo, ti sono davvero grato.
Ciò che implica è che tutti gli esempi esistenti non sono accurati. Si deve usare l'unicode. Dato che sono molto nuovo nella programmazione delle DLL, ho iniziato da zero proprio di recente, quindi ho fatto molto affidamento sugli esempi forniti. Inoltre, mi è capitato di iniziare ad usare la build 600 nello stesso momento.
Se lo fate da molto tempo, immagino che siate completamente consapevoli della situazione. Io purtroppo non lo sono, ricevendo solo frammenti di informazioni e consigli in questo forum.
Mi scuso per la mia ignoranza.
saluti e grazie
Se qualcuno ha qualche suggerimento su cosa fare meglio, fatemelo sapere.
Vi ringrazio ancora.
Se qualcuno ha qualche suggerimento su cosa fare meglio, fatemelo sapere.
Vi ringrazio ancora.