VB.NET调用VB6 Activex EXE实现PowerBasic和FreeBasic的标准DLL调用

VB6写的ActiveX EXE公共对象是外置进程,因此,尽管它是x86 32位的进程,但可以集成到 VB.NET的x64和x32程序中使用。

VS2022的VB.NET程序,调用ActiveX DLL对象我在上篇笔记中写了

VB.NET通过VB6 ActiveX DLL调用PowerBasic及FreeBasic动态库_Mongnewer的博客-CSDN博客

为了简短,调用ActiveX exe就在它上面做修改。

  1. 对填加依赖项的修改

对于Activex DLL注册过的COM在填加引用时是可以在列表中看到的,而Activex EXE方式的COM则需要直接填加 EXE 那个文件,在项目管理器的依赖项中会显示出类的名称。

  1. 有了COM依赖项,Imports 引用就和 Activex DLL一样了,之后建接口也是一样的。
  1. ActiveX EXE的加载

因为Activex EXE是外部程序,使用时必须先加载,不然Imports和new接口没办法工作。想了想就在创建应用时,在它的new里装入吧。

  1. 退出处理

退出实际上不用处理,只是在系统的任务管理器中会留下 Activex EXE 无控制的运行,下次重启系统也就没有了,而且它几乎不占资源,但遇上有人计较就是个不完美的问题。CSDN高人无数,就将博主 ssmi 的原码和版权声明一同贴到FormClosed过程中,让它到系统中找ActiveX EXE进程,然后全部屠杀掉。

    Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
        s = Nothing
        '版权声明:   本文为CSDN博主「smmi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
        '原文链接:   https : //blog.csdn.net/smmi/article/details/84277610
        Dim i As Integer
        Dim proc As Process()
        '判断excel进程是否存在
        If System.Diagnostics.Process.GetProcessesByName("MBFMODIEEE").Length > 0 Then
            proc = Process.GetProcessesByName("MBFMODIEEE")
            '得到名为excel进程个数,全部关闭
            For i = 0 To proc.Length - 1
                proc(i).Kill()
            Next
        End If
        proc = Nothing
        '版权声明:   本文为CSDN博主「smmi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
        '原文链接:   https : //blog.csdn.net/smmi/article/details/84277610
    End Sub
  1. 编译 x86还是x64 ?

Activex EXE是外部进程,不是内部线程,它就是个独立的程序,因此,不论是x86编译,还是x64都是可以的。编译完成后,项目EXE文件夹中把所需的DLL考贝进去,打包时同时打进去。

体会:

感觉Activex EXE方式比Activex DLL方式改造老旧更易用,因为灵活性更大一些。

代码链接

https://download.csdn.net/download/weixin_45707491/88244920

相关推荐
中游鱼8 天前
微软官方 .NET 混淆软件 Dotfuscator
microsoft·c#·.net·混淆·vb.net·dotfuscator
中游鱼13 天前
目前最新 Reflector V11.1.0.2067版本 .NET 反编译软件
c#·.net·vb.net·.net reflector·反编译.net·最新版本
rrokoko2 个月前
TIOBE 编程指数 9 月排行榜公布 VB.Net第七
.net·vb.net
VB.Net2 个月前
EmguCV学习笔记 VB.Net 11.9 姿势识别 OpenPose
opencv·计算机视觉·c#·图像·vb.net·emgucv·姿势识别
VB.Net2 个月前
EmguCV学习笔记 VB.Net 12.1 二维码解析
opencv·计算机视觉·c#·图像·vb.net·二维码·emgucv
VB.Net2 个月前
EmguCV学习笔记 VB.Net 12.3 OCR
opencv·计算机视觉·c#·ocr·图像·vb.net·emgucv
VB.Net2 个月前
EmguCV学习笔记 C# 12.3 OCR
opencv·计算机视觉·c#·ocr·vb.net·emgucv
VB.Net2 个月前
EmguCV学习笔记 VB.Net 11.6 图像分割
opencv·计算机视觉·c#·图像分割·dnn·vb.net·emgucv
VB.Net2 个月前
EmguCV学习笔记 VB.Net 11.4 图像分类
opencv·计算机视觉·c#·dnn·图像·vb.net·emgucv
VB.Net2 个月前
EmguCV学习笔记 C# 11.2 DNN推理流程
opencv·计算机视觉·c#·dnn·图像·vb.net·emgucv