Discussão do artigo "Expondo código C# para MQL5 usando exportações não gerenciadas" - 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
 

*Muito obrigado por escrever este artigo! Ele está muito bem escrito e os vários exemplos são extremamente úteis.

O grande obstáculo para mim foi descobrir os tipos de variáveis e como passá-las para frente e para trás. (Seria ótimo ver algumas bibliotecas C# compartilhadas para o Metatrader. Quando eu aprender mais e criar algumas bibliotecas úteis, verei se posso contribuir com elas.

Você me poupou muito tempo em vez de aprender por tentativa e erro. Obrigado por compartilhar seu conhecimento.

Agradeço muito! :-)

 

Hi

Estou com um problema em que, de repente (?), minha função DLL retorna a mensagem de erro "Cannot find 'Add' in 'TestMe.dll'". Este é um exemplo simples, usando seu 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;
}
}
}

Usando-o em um arquivo .mql:

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

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

--> Não é possível encontrar 'Add' em 'Testme.dll'

Há alguma alteração na forma de chamar DLLs que eu não tenha percebido?

Qualquer opinião será muito apreciada

Thomas

 

Hi

Também tive um problema repentino (funcionou no início, mas ...), quando compilei a dll de amostra, obtive

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

O arquivo de origem é UNICODE

***** FAILURE *****

UELTest

Perdi alguma coisa?

Windows 7; VisualStudio 2010;

Qualquer opinião é muito bem-vinda.

Risan

 

**ATUALIZAÇÃO** Resolvido, obrigado!


Olá,

Segui todo o procedimento para escrever uma dll no C# Express 2010. O modelo não funcionou, então adicionei manualmente os arquivos da dll em um novo projeto e tudo foi compilado corretamente (talvez eu tenha feito algo errado aqui).

Escrevi duas funções simples apenas para testar se funciona, e estou testando no Metatrader 4. Recebo o seguinte erro:


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)


A DLL está carregada no meu MT4, eu verifiquei, mas ela não quer chamar a função. Percebi que esse problema aparece ao tentar chamar uma dll gerenciada no MT4, mas o procedimento descrito neste artigo deve resolver o problema, certo?

Qualquer ajuda será bem-vinda

Obrigado!

 

Olá,

Gostaria apenas de transmitir minha gratidão por um artigo tão bem escrito.

Os detalhes do site de Robert Giesecke foram de grande valia.

Aprendi muito. Não precisar escrever outro wrapper C++ quando prefiro o VB.NET é muito legal.

Muito obrigado.

Obrigado,

Gordon

 

Hi,

Estou com o mesmo problema.... métodos que eu decoro não são encontrados no mt5!!!

Por favor, ajude-me (estou usando o vs2010 e o modelo).

 
Grande solicitação de um exemplo simples de uma função escrita em C# para acessá-la a partir do mt4 (ou mt5) ........... Passar valores a e b para uma função com o Sharp e retornar o resultado para o mt4(mt5)

no artigo https://www.mql5.com/pt/articles/249 A dll compilada do autor funciona corretamente no mt4 e no mt5!

mas quando tento criar minha própria dll compilada a partir da fonte do autor (no VisualStudio 2010), essa dll não funciona (escreve o erro 127)

todas as versões do .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));
}
//+------------------------------------------------------------------+

Qual é o erro?
Как открыть мир C# из MQL5 путем экспорта неуправляемого кода
Как открыть мир C# из MQL5 путем экспорта неуправляемого кода
  • 2011.02.09
  • investeo
  • www.mql5.com
В данной статье я представил различные методы взаимодействия между кодом, написанным на MQL5, и управляемым кодом на C#. Также я подготовил несколько примеров маршалинга структур MQL5 для C# и примеров вызова экспортированных функций DLL в скриптах на MQL5. Приведенные примеры могут служить основой для дальнейших исследований аспектов написания DLL в управляемом коде. Эта статья также открывает двери для использования в MetaTrader 5 множества библиотек, уже реализованных на C#.
 
Quem sabe onde e como os modelos são inseridos no c-sharp? Aparentemente, o motivo é apenas este

e como criar um modelo para se envolver?
 
panelektrik:
Quem sabe onde e como os modelos são inseridos no c-sharp? Aparentemente, o motivo é apenas este

e como ativar o modelo?

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

na parte inferior para o VS2010.

e informações úteis na parte inferior.

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