易语言DLL与C#.net互操作
2022/4/1 22:49:47
本文主要是介绍易语言DLL与C#.net互操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
易语言DLL与C#.net互操作
本文演示了如何用易语言调用C#.NET编写的DLL,以及用C#调用易语言DLL并输出类。
易语言调用 C# 编写的 .NET 类库
办法是:将C#编写的类库注册为Com组件,然后使用易语言调用。
VS新建一个C# .net类库工程。修改项目属性:
1.勾选 生成 -> 为 COM 互操作注册 复选框
2.勾选 应用程序 -> 程序级信息 -> 使程序集 COM 可见 复选框
编写类库代码并生成DLL
由于这是.net类库,必须注册com组件后才可被易语言调用,要用到"regasm.exe"工具来注册。
regasm.exe通常在 ""C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe"
注册方法:打开CMD输入"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /c "DLL所在路径"
例如: "C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /c "d:\testcom\edemo\mycom.dll"
卸载注册的组件:只需把参数"/c"改为 "/u" 即可,例如:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /u "d:\testcom\edemo\mycom.dll"
注:需要在公开的类前声明 [ClassInterface(ClassInterfaceType.None)] 特性。
C# 调用易语言编写的Win32DLL及易语言DLL公开类
如果想要易语言公开类中的公开方法被从DLL中输出,必须设置以下选项:
1.在易语言点选"程序->配置->其它->在编译DLL时允许输出被公开类中的公开方法"选项;
2.选中所处类的"公开"属性;
3.选中类方法的"公开"属性。
注意: 所公开方法在所编译DLL中的输出名称被设置为"_所处类名"+"_方法名"格式,譬如公开矩形类中的公开计算面积方法被输出后的名称即为"_rectangle_CalculateArea"
4.在 C# 中调用类公开方法,必须首先在C#中声明一个同DLL中所输出类具有完全相同数据成员和方法的类。
5.在 C# 中声明公开类方法时,公开的类方法第一个参数固定为对象自身的指针值,在调用时使用 this 关键字获得对象自身,后续参数必须与DLL公开类的内部方法中定义的参数顺序及类型完全保持一致。
C#调用Win32DLL,必须引用 System.Runtime.InteropServices名称空间。
示例代码下载地址:
http://file.yiyuen.com/file/download/245873
这篇关于易语言DLL与C#.net互操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具