Привет всем, у меня небольшая проблема, я программирую в основном на python, и на самом деле прошло некоторое время с тех пор, как я кодировал на C # и время от времени кодировал mql. Моя проблема в том, что я создал dll-файл C #, который имеет несколько простых функций:
[DllExport("debugger", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPWStr)]
public static string debugger()
{
return "Send help!! SOS";
}
[DllExport("debugger2", CallingConvention = CallingConvention.StdCall)]
public static int debugger2()
{
return 12345;
}
Это мой простой код из моего файла C #, он находится внутри общедоступного статического класса, а платформа решения - x64. Код компилируется нормально, и я не нахожу проблем. Вот так выглядит мой код MetaEditor:
#import "simpleFunctions.dll"
string debugger();
int debugger2();
#import
int OnInit()
{
//Print a statement just to show where code crashes
Print("We are definitly in it :D");
Print(debugger);
}
Судя по тому, что мне сообщает журнал, все работает нормально, файл добавляется из библиотек, а также выполняется инструкция печати в начале функции OnInit. Проблема возникает при вызове первой функции отладчика из моего файла dll, чуть ниже моего оператора печати в журнале, я получаю следующие ошибки:
- Cannot find 'debugger', in 'simpleFunctions.dll'
- unresolved import function call
- OnInit critical error
- tester stopped because OnInit failed
Я поискал по всему Интернету, к моему неудовольствию, обнаружив, что на самом деле никто не дает практического ответа на этот вопрос. Я подозреваю, что ошибка, возможно, кроется в C # стороне вещей в отношении различий в типах данных, но я действительно не знаю, где продолжить изучение этой точки. Любая помощь будет принята с благодарностью.