GM使用C#DLL
761397398 发表于 2018-08-25 07:50:41 378

正常情况下,C#写的DLL是不能直接给GM调用的。所以需要一个名为DllExport的扩展给VS用。

首先打开VS2017,文件-新建-项目:

选择类库(.NetFrameWork)

这里就取名叫MyDLL,

确定。

然后点击项目-管理NuGet程序包

浏览-搜索DllExport

然后安装,会弹出一个小窗口,我们关掉它,然后紧接着卸载这个扩展包。

如果提示“未能卸载......”点击重启即可。

接下来进入你的项目文件夹,Shift+右键,在此打开PowerShell/CMD窗口。

 输入

.\DllExport -action Configure

回车,耐心等待几分钟,会出现一个这样的窗口,

0%把Installed勾上,选择x86,Namespace选择System.Runtime.InteropServices,最后点击Apply。然后回到VS,点击“重载解决方案”。

然后代码顶部加上

using System.Runtime.InteropServices;

然后声明函数时,前面加上

[DllExport]

下面是一段乘方函数的示范:

namespace MyDLL
{
    public class Class1
    {
        [DllExport]
        public static double Square(double x)
        {
            return x * x;
        }
    }
}

然后点击生成-生成解决方案

就可以在你的项目\bin\Debug(Release)下找到你的dll了。


在GM中调用示例:

a = external_define("MyDll.dll","Square",dll_cdecl,ty_real,1,ty_real);
show_message(external_call(a,5));

就会得到25啦。


最后于 3月前 被yunzl编辑 ,原因:
最新回复 (2)
  • yunzl 发表于 2018-08-26 09:29:57
    0 2

    下次记得清除格式

  • tpxxn 发表于 2018-09-17 11:56:09
    0 3
    这个赞啦~