将C#DLL导入MQL5的噩梦

大家好,我有点问题,我主要使用python编程,实际上已经有一段时间了,因为我不时用C#编码,而我时不时用mql编码。我的问题是我建立了一个具有几个简单功能的C#dll文件:

[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#文件中的简单代码,所有代码都在公共静态类中,而Solution平台是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);
}

从Journal告诉我的一切都很好,从库中添加了文件,并且在OnInit函数开头的print语句也运行了。问题是从我的dll文件中的第一个调试器函数调用时出现的,该错误正好在日志中我的Print语句下方,出现以下错误:

- Cannot find 'debugger', in 'simpleFunctions.dll' - unresolved import function call - OnInit critical error - tester stopped because OnInit failed

我不满意地发现互联网上没有人以实际的方式回答这个问题,这使我不满意。我怀疑错误可能出在C#方面,涉及数据类型差异,但我真的不知道从哪里继续看。任何帮助将不胜感激。

评论