C# DLL MQ4 построение формы общения

 

Еще неделю назад я не знал что такое C#...теперь я знаю что это читается "си шарп")))

Прочитав статьи  https://www.mql5.com/ru/articles/249   https://www.mql5.com/ru/articles/5563

Я решил попробовать создать внешнюю оболочку для своего советника. По примеру я создал DLL прикрутил [DllExport]

в итоге я имею

код C#

using System;
using System.Text;
using net.r_eg.DllExport;
using System.Collections.Generic;
using System.Runtime.InteropServices;

namespace Testme
{
    public class Test
    {
        [DllExport]
        public static int Sum(int left, int right)
        {
            if (left > right) return left - right;
            else return right - left;
        }
    }
}

и код МТ4

//+------------------------------------------------------------------+
//|                                  UnmanagedExportsDLLExample6.mq5 |
//|                                      Copyright 2011, Investeo.pl |
//|                                                http:/Investeo.pl |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, Investeo.pl"
#property link      "http:/Investeo.pl"
#property version   "1.00"
#property indicator_chart_window
#import "Testme.dll"
int Sum(int left,int right);
#import
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
  {
//---
   Print(Sum(3,9));
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

По сути ничего сложного, в статьях все расписано.

Дальше я хотел создать форму и попал в тупик

Igor Makanu в коментарии описал возможность для МТ5, но уменя ничего не получается


Прошу всех помочь мне прикрепить форму к DLL и запустить ее из советника МТ4.

Так как (повторюсь) я вообще еще не знаю C#, если можно помогите наглядно в виде кода.

Может кто подскажет где почитать как это сделать.

 

мой пример по ссылке будет работать и в МТ4 и в МТ5 - если умеете пользоваться VS , то все получится


не понятно зачем Вы привели свой код, а затем спросили как создать окно в .dll, по моему это разные области применения


MakarFX:

Так как (повторюсь) я вообще еще не знаю C#, если можно помогите наглядно в виде кода.

Может кто подскажет где почитать как это сделать.

не ко мне, не изучал в универе C# ибо его еще не было - все самостоятельно читаю и проверяю, учить не умею

тут или профильные интернет-ресурсы по C# или книги

 
Igor Makanu:

мой пример по ссылке будет работать и в МТ4 и в МТ5 - если умеете пользоваться VS , то все получится


не понятно зачем Вы привели свой код, а затем спросили как создать окно в .dll, по моему это разные области применения


не ко мне, не изучал в универе C# ибо его еще не было - все самостоятельно читаю и проверяю, учить не умею

тут или профильные интернет-ресурсы по C# или книги

У Вас я хотел спросить, как прописать запуск формы в советнике? Все сделал по Вашему примеру, проект собирается без ошибок, а окно формы не запускается.
 

тут

Взаимодействия MQL-программы с GuiController, событийна модель

и тут

Интеграция графического окна с кодом эксперта

https://www.mql5.com/ru/articles/5563

Создание графических интерфейсов для экспертов и индикаторов на базе .Net Framework и C#
Создание графических интерфейсов для экспертов и индикаторов на базе .Net Framework и C#
  • www.mql5.com
Простой и быстрый способ создания графических окон при помощи редактора Visual Studio с последующей интеграцией в код MQL советника. Статья расчитана на широкий круг читателей, и не требует каких-либо познаний в C# и технологии .Net.
 

На mql тоже можно:

https://www.mql5.com/ru/docs/standardlibrary/controls

Документация по MQL5: Стандартная библиотека / Панели и диалоги
Документация по MQL5: Стандартная библиотека / Панели и диалоги
  • www.mql5.com
Панели и диалоги - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Renat Akhtyamov:

тут

Взаимодействия MQL-программы с GuiController, событийна модель

и тут

Интеграция графического окна с кодом эксперта

https://www.mql5.com/ru/articles/5563

Renat Akhtyamov:

На mql тоже можно:

https://www.mql5.com/ru/docs/standardlibrary/controls

 Это все для МТ5, а мне надо МТ4
 
самый простой пример длл в TCC От фабрис беларда http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip
 
ruslan:
самый простой пример длл в TCC От фабрис беларда http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.27-win64-bin.zip
это С или С++, а мне надо С#
 
MakarFX:
 Это все для МТ5, а мне надо МТ4
в 4-рке работает, по кр.мере я делал
 
MakarFX:
 Это все для МТ5, а мне надо МТ4

Я вообще не уверен, есть ли интеграция с C# на МТ4. Все же это разные терминалы.

 
Renat Akhtyamov:
в 4-рке работает, по кр.мере я делал
У Вас есть исходники, в качестве примера? Буду очень признателен.
Причина обращения: