易语言调用VB.NET编写的COM-DLL

VS2015步骤:

1、新建一个类工程(test)
2、删除默认的类.vb
3、项目-添加类-COM
4、编写类中的代码:

<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
Public Class ComClass1
 
#Region "COM GUID"
    ' 这些 GUID 提供此类的 COM 标识 
    ' 及其 COM 接口。若更改它们,则现有的
    ' 客户端将不再能访问此类。
    Public Const ClassId As String = "2e1a701c-9203-4f11-9871-925276528e02"
    Public Const InterfaceId As String = "cc911a56-8854-46b0-85cd-52ddac95e4c9"
    Public Const EventsId As String = "11c493b1-f75b-4b0a-988b-4913053c993c"
#End Region
 
    ' 可创建的 COM 类必须具有一个不带参数的 Public Sub New() 
    ' 否则, 将不会在 
    ' COM 注册表中注册此类,且无法通过
    ' CreateObject 创建此类。
    Public Function myadd(ByVal a As Short, ByVal b As Short) As Short
 
        myadd= a + b
 
    End Function
 
End Class

注册到系统

新建一个bat文件:

set p=test
set w=C:\windows\
copy %p%.dll %w%%p%.dll<strong class="text-danger"> xxx </strong>
 
C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe %w%%p%.dll /tlb:%w%%p%.tlb /codebase
 
pause

注意:
1、必须使用RegAsm(NET Framework 工具)

组件登录工具 (Regasm.exe)

组件注册工具可以读取组件内的中继资料 (Metadata),并加入必要的项目至登录中,可允许 COM 用户端无障碍地建立 .NET Framework 类别。一旦注册类别之後,任何 COM 用户端都可以使用它,如同它是 COM 类别。当安装组件时,只会注册类别一次。在实际注册类别之後,才能从 COM 建立组件内类别的执行个体。

2、后面必须加 codebase
注册的.net程序集没有强名称,则在用regasm注册的时候须指定参数 CodeBase.
3、和test.dll放到同一个目录

易语言调用

1、工具-类型库或OCX组件-支持库
2、注册类型库!!!不是注册组件!!
3、找到Windows下的test.tlb
4、下一步,保存
5、重启易语言,工具-支持库配置选中刚才的类库
6、声明变量-选择类
7、调用方法。

注意:

1、在vbnet中

Public Function myadd(ByVal a As Short, ByVal b As Short) As Short
 
        myadd= a + b
 
    End Function

把数据类型换成 Short不要使用 Long
2、编译时,系统中必须安装microsoft .net framework

类模块方式调用

1、使用对象创建调用方法
2、易语言类模块

.版本 2
 
.程序集 类_vbnet, , 公开
.程序集变量 obj, 对象
 
.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用
 
obj.创建 (“test.ComClass1, “test.dll)
 
.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用

发布日期:

所属分类: 易语言 标签: