Импорт функций из .NET библиотек

MQL5 предоставляет особый сервис для работы с функциями .NET библиотек — достаточно импортировать саму DLL без указания конкретных функций. MetaEditor автоматически импортирует все функции, с которыми возможна работа:

  • простые структуры (POD, plain old data) – структуры, которые содержат только простые типы данных;
  • публичные статические функции, в параметрах которых используются только простые типы и структуры POD или их массивы;

К сожалению, в данный момент нет средств, чтобы увидеть прототипы функций в том виде, как их распознал MetaEditor.

Например, пусть C# код функции Inc класса TestClass в библиотеке TestLib.dll выглядит следующим образом:

public class TestClass

   public static void Inc(ref int x)
   {
      x++;
   }
}

Тогда для её импорта и вызова достаточно написать:

#import "TestLib.dll"
   
void OnStart()
{
   int x = 1;
   TestClass::Inc(x);
   Print(x);
}

В результате выполнения скрипт вернет значение 2.