Per quanto ne so, il modello UnmanagedExportLibrary di RGiesecke utilizza commenti come // Code per il parsing dei file IL in alcuni punti. Gli utenti di Windows di lingua russa inseriscono commenti russi come // Size e questo è il motivo per cui il modello non funziona. Semplicemente non ci sono funzioni nella DLL e questo è il motivo per cui viene lanciato l 'errore 127. È un peccato, per il bene solo di questo modello non voglio cambiare il linguaggio dell'interfaccia di Windows, anche se funziona abbastanza bene e sembra essere corretto, almeno le DLL vengono scaricate. Anche Microsoft è una scopa, si possono trasferire facilmente i dati da C++ a C#, ma il contrario è un grosso problema.
A set of compile-time libraries (nothing to deploy) and a build task that enable you to export functions from managed code to native applications. That means, you can create plugins in a managed language like C# or F# for native applications that only have a C-Api (like Notepad++). The nuget package is all you need. Just mark your methods with [DllExport] and build for x86, x64 or ia64. Hints: - You have to set your platform target to either x86, ia64 or x64. AnyCPU assemblies cannot export functions. - The export name defaults to the method name and the calling convention to stdcall. If that's all what you want, you can just use [DllExport] without parameters. - You cannot put your exports in generic types or export generic methods. (The CLR wouldn't know what type parameters to use)
In comparison to the question above i need to combine DLLs so that final mixed DLL could export their functions to other unmanaged applications. For this i would like to compile them both as .netmodule and then combine them into one file with a linker so i have : 1) Libs - project with some library in C# - it does not have any dependencies...
struct accInfo
{
string broker;
// stringa server;int account;
// stringa utente;double balance;
double credit;
// stringa di valuta;int leverage;
int stopout;
int stopoutmode;
float commission;
int lotsize;
float minlot;
float lotstep;
float maxlot;
float gmtOffset;
// coppia di stringhe;int digits;
int point;
int tradeAllowed;
int swaptype;
float swapbuy;
float swapsell;
int stoplevel;
};
Ho provato a marshallare la variabile stringa all'interno della struttura ma MT4 si blocca completamente, nessun errore, si blocca e si blocca in windows.
I also provided several examples on how to marshal MQL5 structures against C# and how to invoke exported DLL functions in MQL5 scripts. - Page 2 - Category: articles, library comments
Grazie mille per questo articolo. Ho usato le idee qui per costruire questa libreria MQL opensource per C#.
https://github.com/jseparovic/MQL4CSharp
È ancora in fase di sviluppo e al momento non è stata testata, ma i primi test mostrano che l'idea funziona.
È molto semplice nel modo in cui invia i comandi da C#, utilizzando un thread per l'esecuzione del codice C# e getter/setter per la comunicazione. MQL esegue il polling dei comandi in attesa ogni millisecondo, mentre il codice C# può bloccarsi fino alla scrittura del risultato.
Date un'occhiata a https://github.com/jseparovic/MQL4CSharp/blob/master/MQL4CSharp/UserDefined/Strategy/MaCrossStrategy.cs per un esempio di implementazione di una strategia in C#.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Sono su un 64 win 8.
L'ho compilato con vs2013.
Tuttavia, viene caricato, ma c'è una chiamata di funzione di importazione non risolta.
Come posso risolvere questo problema?
2014.03.05 20:39:59.220 UnmanagedExportsDLLExample1 (XAUUSD,H1) chiamata di funzione di importazione non risolta
2014.03.05 20:39:59.220 UnmanagedExportsDLLExample1 (XAUUSD,H1) Impossibile trovare 'Add' in 'Testme.dll'.
2011.10.29 20:13:37 2000.01.03 00:00 Expert_NN_1_1 USDJPY,H1: cannot call function 'sum' from dll 'NN 1 DLL.dll' (error 127)
Ciao,
Sto ricevendo errori simili. Come hai risolto?...
2014.03.28 22:16:41.199 2014.03.25 23:59 chiamata di funzione di importazione non risolta
2014.03.28 22:16:41.199 2014.03.25 23:59 Impossibile trovare 'Set2DArray' in 'Testme.dll'
Per quanto ho capito il modello RGiesecke UnmanagedExportLibrary...
Questo messaggio è stato lasciato più di mezzo anno fa. È cambiato qualcosa da allora????
Metodo 1:
Ho 64 win 7, vs2012 C#. Ho scaricato il file modello testme.zip del proprietario.
Nel mezzo del prompt alcuni errori (percorso sbagliato, file mancanti, ecc. e così via), è stato risolto.
Ma alla fine, appare ancora e e di sopra lo stesso problema. Non so se ora è risolto? Quale metodo per risolvere.
Metodo due:
NuGet installato pacchetto RGiesecke.
https://www.nuget.org/packages/UnmanagedExports/1.2.6
L'ultima versione del 201311 richiede
Errore 2 C:\Users\Administrator\AppData\Local\Temp\tmp8B24\dllTest.il(58) : errore: errore di sintassi al token '{ ' in: {
dllTest
È possibile utilizzare lo stripper C++ con l'aiuto di IJW, e poi unire tutto in un'unica DLL puramente per mezzo del compilatore - linker, non sono necessarie perversioni con il modello descritto nell'articolo, descritto brevemente qui - http://stackoverflow.com/questions/26226958/include-managed-c-sharp-dll-into-unmanaged-c-dll-all-in-one-single-file.
Beh, e il metodo descritto con il modello RGiesecke - è un hack e tale prima o poi smette di funzionare, io, tra l'altro, anche non ha funzionato ...Ma se qualcuno vuole ancora giocare con il metodo IL descritto nell'articolo, c'è un'altra moto, ma non funziona nemmeno - https://github.com/winch/winch.pinkbile.com-c-sharp/tree/master/dll_tool/dll_tool.
Salve,
Qualcuno è riuscito a inviare una struttura con variabili stringa all'interno, alla dll?
Sono riuscito a inviare int, double, float, ma per le variabili stringa ottengo questo errore:
Access violation read to 0x0000007BEcco la mia struttura C#:
E qui la struttura mql4:
Ho provato a marshallare la variabile stringa all'interno della struttura ma MT4 si blocca completamente, nessun errore, si blocca e si blocca in windows.
Grazie.
Sì, tra qualche tempo scriveremo un nuovo articolo sull'uso delle DLL. Sono state aggiunte molte cose interessanti.
Nel frattempo, è possibile utilizzare gli esempi dell'articolo in discussione. Non c'è nulla di complicato.
E ... Quanto tempo bisogna aspettare? Un anno, due... o 10?
Sono già passati 3 anni. Secondo l'articolo citato all'inizio non è possibile importare metodi da dll. Dove sono gli esempi?
Grazie mille per questo articolo. Ho usato le idee qui per costruire questa libreria MQL opensource per C#.
https://github.com/jseparovic/MQL4CSharp
È ancora in fase di sviluppo e al momento non è stata testata, ma i primi test mostrano che l'idea funziona.
È molto semplice nel modo in cui invia i comandi da C#, utilizzando un thread per l'esecuzione del codice C# e getter/setter per la comunicazione. MQL esegue il polling dei comandi in attesa ogni millisecondo, mentre il codice C# può bloccarsi fino alla scrittura del risultato.
Date un'occhiata a https://github.com/jseparovic/MQL4CSharp/blob/master/MQL4CSharp/UserDefined/Strategy/MaCrossStrategy.cs per un esempio di implementazione di una strategia in C#.
Grazie,
Jason