【解决方案】使用易语言调用C#编写的DLL

易语言在国内使用范围非常广泛,尤其是其“特殊功能”非常强大。
在非特殊的情况下,也真的是不怎么好用,尤其是对于非常熟悉C#的编程人员来说,易语言有诸多不便。

但由于其“特殊”的功能,这个语言也不可小视!如果能使用其特殊功能的同时,还能照顾到C#这类强大的编程语言,那该多好?

解决方案有了!

1、使用Visual Studio创建一个.Net类库

namespace NetHttpService
{
    public interface IClass
    {
        int add(int a, int b);
        int Add2(int a, int b);
    }
    
    [ClassInterface(ClassInterfaceType.None)]
    public class Class : IClass
    {
        public int add(int a, int b)
        {
            return a + b;
        }

        public int Add2(int a, int b)
        {
            return a + b;
        }

        public int Add3(int a, int b)
        {
            return a + b;
        }
    }    

修改项目属性:
【解决方案】使用易语言调用C#编写的DLL_第1张图片
还有
【解决方案】使用易语言调用C#编写的DLL_第2张图片

项目已经完成,编译项目
接下来,注册项目

C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /c /s NetHttpService.dll

对于.NET项目来说,这里全部完成。
接下来,如何在易语言中使用呢?

创建一个Windows窗口程序
【解决方案】使用易语言调用C#编写的DLL_第3张图片
双击按钮,添加如下代码
【解决方案】使用易语言调用C#编写的DLL_第4张图片

.程序集 窗口程序集_启动窗口
.程序集变量 Class, 对象

.子程序 __启动窗口_创建完毕
.如果真 (Class.创建 (“NetHttpService.Class”, ) = 假)
    信息框 (“创建失败,无法正常使用” + #换行符 + Class.取错误 (), #错误图标, “COM错误”, _启动窗口)
.如果真结束
Class.查看 ()

.子程序 _按钮1_被单击
编辑框3.内容 = 到文本 (Class.数值方法 (“add”, 到数值 (编辑框1.内容), 到数值 (编辑框2.内容)))

直接执行程序如下:(Class.查看 ()执行的结果)
【解决方案】使用易语言调用C#编写的DLL_第5张图片

在这里,你会发现,出现的方法是那两个在interface中定义的,并非在具体实现中定义的那三个。
【解决方案】使用易语言调用C#编写的DLL_第6张图片
点击方法,会提示如何使用该方法。点击“关闭后”,主界面如下:

【解决方案】使用易语言调用C#编写的DLL_第7张图片

点击“按钮”,调用C#写的方法,结果如下:
【解决方案】使用易语言调用C#编写的DLL_第8张图片

OK。完美!

交流QQ群:

456197310 PC微信HOOK逆向分析

你可能感兴趣的:(C#技术,易语言,易语言,C#,调用,DLL)