Discusión sobre el artículo "Exponer código C# a MQL5 usando exportaciones no gestionadas" - página 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
 

*Muchas gracias por escribir este artículo, está muy bien escrito y la multitud de ejemplos son extremadamente útiles.

El gran obstáculo para mí fue averiguar los tipos de variables y la forma de pasar de ida y vuelta. (especialmente arrays y strings) Sería genial ver algunas librerías C# compartidas para Metatrader. Una vez que aprenda más y construya algunas librerías útiles, veré si puedo contribuir con ellas.

Me has ahorrado mucho tiempo en lugar de aprender por ensayo y error. Gracias por compartir tus conocimientos.

Se agradece! :-)

 

Hola

Tengo un problema que de repente (?) mi función DLL devuelve mensaje de error "No se puede encontrar 'Add' en 'TestMe.dll'. Este es un ejemplo sencillo, utilizando su código:

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

Usándolo en un fichero .mql:

#import "Testme.dll"
int Add(int izquierda,int derecha);
#import

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

--> No se encuentra 'Add' en 'Testme.dll'

¿Hay algún cambio en la forma de llamar a las DLLs que me haya perdido?

Cualquier opinión es muy apreciada

Thomas

 

Hola

Yo también tengo un problema de repente (funcionó al principio, pero ...), cuando compilé la dll de ejemplo, obtuve

Assembling 'C:\sers\internal228\AppData\Local\Temp\tmpAFBE\UELTest.x86.il' to DLL --> 'C:\sers\internal228\Documents\Visual Studio 2010\Projects\UnmanagedLibTest\UELTest\bin\Debug\x86\UELTest.dll'

El archivo fuente es UNICODE

***** FALLO *****

UELTest

¿Me he perdido algo?

Windows 7; VisualStudio 2010;

Cualquier opinión es muy apreciada.

Risan

 

**ACTUALIZACIÓN** ¡Lo he solucionado, gracias!


Hola,

Seguí todo el procedimiento para escribir una dll en C# Express 2010. La plantilla no funcionó así que agregué manualmente los archivos dll en un nuevo proyecto y todo compiló bien (tal vez hice algo mal aquí).

Escribí dos funciones fáciles sólo para probar si funciona, y estoy probando fuera de Metatrader 4. Me sale el siguiente error:


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)


¿Alguna idea de cuál podría ser el problema? El DLL se carga mi MT4, he comprobado, pero no quiere llamar a la función. Me di cuenta de que este problema aparece cuando se trata de llamar a un dll administrado en MT4, pero el procedimiento descrito en este artículo se supone que para resolver el problema ¿verdad?

Cualquier ayuda será apreciada

Gracias

 

Hola,

Me gustaría transmitir mi agradecimiento por un artículo tan bien escrito.

Los datos del sitio de Robert Giesecke son muy valiosos.

He aprendido mucho. No tener que escribir otra envoltura de C++ cuando prefiero VB.NET es algo genial.

Muchas gracias.

Gracias,

Gordon

 

Hola,

¡¡Tengo el mismo problema.... métodos que decorar no se encuentran en mt5!!

(estoy usando vs2010 y la plantilla)

 
Gran petición de un ejemplo sencillo de una función escrita en C# para acceder a ella desde mt4(o mt5) ........... Pasar valores a y b a una funcion con Sharp y devolver el resultado a mt4(mt5)

en el articulo https://www.mql5.com/es/articles/249 la dll compilada del autor funciona en mt4 y mt5 correctamente!

pero cuando intento crear mi propia dll compilada a partir de la fuente del autor (en VisualStudio 2010), esta dll no funciona (escribe error 127)

todas las versiones de .NET instaladas


// код 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));
}
//+------------------------------------------------------------------+

¿Cuál es el error?
Как открыть мир C# из MQL5 путем экспорта неуправляемого кода
Как открыть мир C# из MQL5 путем экспорта неуправляемого кода
  • 2011.02.09
  • investeo
  • www.mql5.com
В данной статье я представил различные методы взаимодействия между кодом, написанным на MQL5, и управляемым кодом на C#. Также я подготовил несколько примеров маршалинга структур MQL5 для C# и примеров вызова экспортированных функций DLL в скриптах на MQL5. Приведенные примеры могут служить основой для дальнейших исследований аспектов написания DLL в управляемом коде. Эта статья также открывает двери для использования в MetaTrader 5 множества библиотек, уже реализованных на C#.
 
¿quién sabe dónde y cómo se insertan las plantillas en c-sharp, la razón es aparentemente sólo este

y cómo plantilla para participar?
 
panelektrik:
¿quién sabe dónde y cómo se insertan las plantillas en c-sharp, la razón es aparentemente sólo este

y cómo enganchar la plantilla?

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

en la parte inferior para VS2010.

e información útil en la parte inferior.

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