Discussion de l'article "Exposer le code C# à MQL5 à l'aide d'exportations non gérées" - page 2

 
How to use a .Net Assembly in Delphi without registering it in the GAC or COM?
How to use a .Net Assembly in Delphi without registering it in the GAC or COM?
  • stackoverflow.com
i have a simple task: is it possible to write a Delphi DLL and put a .Net Assembly (with only one interface with 4 methods and one class implementing the interface) besides it and call it from the
 

*Merci beaucoup d'avoir écrit cet article, qui est très bien rédigé et dont la multitude d'exemples est extrêmement utile.

Le grand obstacle pour moi a été de comprendre les types de variables et comment les passer d'un côté à l'autre (en particulier les tableaux et les chaînes). (Une fois que j'en saurai plus et que j'aurai construit quelques bibliothèques utiles, je verrai si je peux y contribuer.

Vous m'avez fait gagner beaucoup de temps au lieu d'apprendre par essais et erreurs. Merci de partager vos connaissances.

C'est très apprécié ! :-)

 

Bonjour

J'ai un problème : soudainement ( ?) ma fonction DLL renvoie le message d'erreur "Cannot find 'Add' in 'TestMe.dll'". Voici un exemple simple, utilisant votre code :

using System ;
using System.Text ;
using RGiesecke.DllExport ;
using System.Runtime.InteropServices ;

namespace Testme
{
class Test
{

[DllExport("Add", CallingConvention = CallingConvention.StdCall)]
public static int Add(int left, int right)
{
return left + right ;
}
}
}

Utilisation dans un fichier .mql :

#import "Testme.dll"
int Add(int left,int right) ;
#import

void OnStart()
{
//---
for(int i=0 ; i<3 ; i++)
{
Print(Add(i,666)) ;
}
}

--> Impossible de trouver 'Add' dans 'Testme.dll'

Y a-t-il un changement dans la façon d'appeler les DLL que j'ai manqué ?

Tout avis est le bienvenu.

Thomas

 

Bonjour

J'ai aussi un problème soudain (ça marchait au début, mais ...), quand j'ai compilé la dll d'exemple, j'ai obtenu

Assemblage de 'C:\Users\internal228\AppData\Local\Temp\tmpAFBE\UELTest.x86.il' en DLL --> 'C:\Users\internal228\Documents\Visual Studio 2010\Projects\UnmanagedLibTest\UELTest\bin\Debug\x86\UELTest.dll'

Le fichier source est UNICODE

***** FAILURE *****

UELTest

Ai-je oublié quelque chose ?

Windows 7 ; VisualStudio 2010 ;

Toute opinion est grandement appréciée.

Risan

 

**MISE A JOUR** C'est réglé, merci !


Bonjour, j'ai suivi la procédure à la lettre pour écrire une dll en C# Express 2010,

J'ai suivi entièrement la procédure pour écrire une dll en C# Express 2010. Le modèle n'a pas fonctionné donc j'ai ajouté manuellement les fichiers dll dans un nouveau projet et tout s'est compilé correctement (j'ai peut-être fait quelque chose de mal ici).

J'ai écrit deux fonctions simples juste pour tester si cela fonctionne, et je teste à partir de Metatrader 4. J'obtiens l'erreur suivante :


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)


Une idée de ce qui pourrait être le problème ? La DLL est chargée dans MT4, j'ai vérifié, mais elle ne veut pas appeler la fonction. J'ai remarqué que ce problème apparaît lorsque l'on essaie d'appeler une dll gérée dans MT4, mais la procédure décrite dans cet article est censée résoudre le problème, n'est-ce pas ?

Toute aide sera appréciée

Merci de votre aide.

 

Bonjour,

Je tiens à vous faire part de mon appréciation pour cet article si bien écrit.

Les informations sur le site de Robert Giesecke sont inestimables.

J'ai beaucoup appris. Ne pas avoir à écrire un autre wrapper C++ alors que je préfère VB.NET est une bonne chose.

Merci beaucoup.

Merci beaucoup,

Gordon

 

Bonjour, j'ai le même problème,

J'ai le même problème.... méthodes que je décore ne sont pas trouvées dans mt5 ! !!

Je suis en train d'utiliser vs2010 et le template.

 
Grande demande d'un exemple simple d'une fonction écrite en C# pour y accéder depuis mt4(ou mt5) ........... Passer les valeurs a et b à une fonction avec Sharp et retourner le résultat à mt4(mt5)

dans l'article https://www.mql5.com/ru/article s/249 la dll compilée de l'auteur fonctionne dans mt4 et mt5 correctement !

mais quand j'essaie de créer ma propre dll compilée à partir de la source de l'auteur (dans VisualStudio 2010), cette dll ne fonctionne pas (écrit l'erreur 127)

toutes les versions de .NET installées


// код C#

using System;
using System.Text;
using RGiesecke.DllExport;
using System.Runtime.InteropServices;



namespace TEST
{
class TEST
{
[DllExport("Add", CallingConvention = CallingConvention.StdCall)]
public static int Add(int left, int right)
{
return left + right;
}
}
}



namespace RGiesecke.DllExport
{

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
partial class DllExportAttribute : Attribute
{
public DllExportAttribute()
{
}
public DllExportAttribute(string exportName)
: this(exportName, CallingConvention.StdCall)
{
}
public DllExportAttribute(string exportName, CallingConvention callingConvention)
{
ExportName = exportName;
CallingConvention = callingConvention;
}
public CallingConvention CallingConvention { get; set; }
public string ExportName { get; set; }
}
}


// код МТ4
//+------------------------------------------------------------------+
#import "TEST.dll"
int Add(int a,int b);
#import

void start()
{
Comment(Add(3,2));
}
//+------------------------------------------------------------------+

Quelle est l'erreur ?
Как открыть мир C# из MQL5 путем экспорта неуправляемого кода
Как открыть мир C# из MQL5 путем экспорта неуправляемого кода
  • 2011.02.09
  • investeo
  • www.mql5.com
В данной статье я представил различные методы взаимодействия между кодом, написанным на MQL5, и управляемым кодом на C#. Также я подготовил несколько примеров маршалинга структур MQL5 для C# и примеров вызова экспортированных функций DLL в скриптах на MQL5. Приведенные примеры могут служить основой для дальнейших исследований аспектов написания DLL в управляемом коде. Эта статья также открывает двери для использования в MetaTrader 5 множества библиотек, уже реализованных на C#.
 
Qui sait où et comment les gabarits sont insérés en c-sharp, la raison n'est apparemment que cette

et comment les gabarits peuvent-ils s'engager ?
 
panelektrik:
Qui sait où et comment les gabarits sont insérés dans c-sharp, la raison est apparemment seulement cette

et comment engager le gabarit ?

http://softblog.violet-tape.ru/2010/05/06/visual-studio-templates/

en bas pour VS2010.

et des informations utiles tout en bas.

Visual Studio. Заготовки проектов
Visual Studio. Заготовки проектов
  • www.rootfront.com
В последнее время я не просто много, а очень много экспериментирую с кодом, подходами, написаниями каких-то тестовых сценариев и приложений. Результат, конечно, всегда разный, ну да не об этом сегодня пойдет речь. Постепенно начинаешь уставать от настройки стандартных проектов. Для проекта библиотек надо удалить класс, создаваемый там по...