文章目录[隐藏]
C#编写的COM接口DLL ,易语言调用。
VS-2015操作步骤:
1.打开VS2015,文件->新建->项目(test),弹出对话框选“类库”。
2.新建好的类库下有一个默认的类Class1,我们删除这个默认的类库,不是必须的。
3.往类库中添加新类--ClassMath
4.在test上,右键,选择属性--生成--为COM互操作注册。
5.在 AssemblyInfo.cs中把 false改为:
[assembly: ComVisible(true)]
6.在classMath.cs中编写代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; namespace test { public interface IClassMath { int add(int a, int b); int sub (int a, int b); } [ClassInterface(ClassInterfaceType.None)] public class ClassMath : IClassMath { public int add(int a, int b) { return a+b; } public int sub(int a, int b) { return a-b; } } }
4.解决方案资源管理器中点右键,选“生成”,然后在你的Debug/Bin目录就能看到生成的dll文件了。
易语言调用步骤:
这里有两种方式,为了能静态调用,我们采用对象,类模块的方式
类模块源码:
.版本 2 .程序集 类_C, , 公开 .程序集变量 obj, 对象 .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用 obj.创建 (“test.ClassMath”, “test.dll”) .子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用 .子程序 add, 整数型, 公开 .参数 a, 整数型 .参数 b, 整数型 返回 (obj.数值方法 (“add”, a, b))
.版本 2 .程序集 窗口程序集_启动窗口 .程序集变量 a, 类_C .子程序 _按钮_add_被单击 编辑框3.内容 = 到文本 (a.add (到整数 (编辑框1.内容), 到整数 (编辑框2.内容))) .子程序 _按钮_sub_被单击 编辑框6.内容 = 到文本 (a.sub (到整数 (编辑框4.内容), 到整数 (编辑框5.内容)))
说明:
1、C#编写的COM DLL是基于NET Framework框架,换环境使用,必须注册
2、注册文件模板:
set p=test
set w=C:\windows\
copy %p%.dll %w%%p%.dll
C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe %w%%p%.dll /tlb:%w%%p%.tlb /codebase
pause
即使注册,也是使用了Framework下的RegAsm.exe 所以,必须有NET Framework框架
3、建议使用C,C++来编写DLL。