需求

接口封装在exe文件中,以 COM 组件方式为其他需要访问该接口的程序提供服务,我们要做的就是调用这个接口中的方法

分析

  1. 首先我们需要知道什么是COM组件

    参考资料:

    1. 360百科 - COM组件
    2. COM编程概述
    • 全称:COM(Componet Object Model,组件对象模型)
    • 含义:是关于如何建立组件以及如何通过组件建立应用程序的一个规范,说明了如何可动态交替更新组件(来源于360百科)
    • 本质:实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务,就如同开发动态的,面向对象的API
    • 形式:COM组件由以Win 32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成
    • 作用/优点:
      • 可以将它们动态的插入或卸出应用(动态链接;封装内部细节)
      • 规范(遵循COM规范编写出来的组件将能够满足对组件架构的所有要求)
      • 可以给应用程序、操作系统以及其他组件提供服务
      • 自定义的COM组件可以在运行时刻同其他组件连接起来构成某个应用程序
      • 可以在不妨碍已有用户的情况下被升级
    • 基本元素:
      • 接口
      • coclass (Component Object Class,组件对象类,通常被称为COM类)
      • COM服务器
      • 注册(Registration)
      • 取消注册(Unregistration)
      • GUID(谐音fluid,意思是全球唯一标示符Globally unique identifier)
      • UUID(universally unique identifier)
      • CLSID(类ID)
      • IID(接口ID)
      • HRESULT
      • COM库
  2. 其他程序如何访问COM组件

    通过ActiveX即可实现对COM组件的调用

    ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM),是OLE技术的扩展

    ActiveX的对象是用于桌面,基于COM组件的,可以是可见的,也可以是隐藏的

    通过现成的ActiveX对象,用户可以实现许多强大的功能,如操作Excel、PPT等

使用

使用条件:组件需注册到计算机内(即注册表)

注册方法

  1. 使用管理员权限打开CMD

  2. cd跳到想要注册的文件路径下

  3. 执行命令****.exe /regserver,未报错说明指令执行完成

    /regserver 注册

    /unregserver 反注册

  4. Win + R,输入regedit,打开注册表,查看HKEY_CLASSES_ROOT下是否有刚注册的相关项,有,则注册成功

使用方法

  1. 新建Vi,打开程序界面,找到Connectivity -> ActiveX -> Automation Open
  2. 在该Vi的Automation Refnum处右键,选择Select ActiveX Class,找到注册的控件
  3. COM组件的主要特性是方法函数,使用Invoke Node调用功能函数即可

常见报错

  1. 没有注册类

    原因:exe未注册或未注册成功,需重新注册

Labview调用EXE形式COM组件相关推荐

  1. LabVIEW调用第三方exe软件或操作操作控制第三方软件界面的控件,如操控烧录软件

    LabVIEW调用第三方exe软件或操作操作控制第三方软件界面的控件,如操控烧录软件等 除了模拟鼠标和键盘来实现之后,还可以考虑另外一种方式,使用窗口句柄来直接操作程序 如下面图片实例,操作串口助手, ...

  2. labview调用外部仪器设备案例一(标签打印机)

    labview调用BarTender案例一(斑马标签打印机) 第一章 调用BarTender标签模板制作软件打印标签 文章目录 labview调用BarTender案例一(斑马标签打印机) 第一章 调 ...

  3. windows服务应用--做个简单的定时调用EXE功能(笔记)

    先给一个LINK~~别人写的创建服务的步骤 好,这里感谢一下本园的"技术无极限"这们人兄: copy他的: (红色为我加的) . 新建一个项目 2. 从一个可用的项目模板列表当中选 ...

  4. labview调用python 开发视觉_龙哥教你学视觉—tensorflow目标检测LabVIEW深度学习教程...

    购买注意事项: 1. 专属学习群和课程资料领取:成功购买后,请添加助教小姐姐的微信:18123773580,添加时请备注姓名+已购买视频.小姐姐会拉你进专属学习交流群 2. 关于发货:为了保证视频正版 ...

  5. LabVIEW调用DLL动态链接库

    LabVIEW调用DLL动态链接库 有些数据运算比如多个数组之间的处理.雨流计数法.卡尔曼滤波使用labview这样的图形编程语言实在过于麻烦,实现不难但有一定的逻辑复杂度,倒不如用C++或者matl ...

  6. 64位系统VBS调用32位COM组件

    64位系统VBS调用32位COM组件 标签: 32位, 64位, COM, COM组件, VB, VBS, VBScript 标题: 64位系统VBS调用32位COM组件 作者: Demon 链接:  ...

  7. LabVIEW调用DLL时出现异常0xc0000005代码

    LabVIEW调用DLL时出现异常0xc0000005代码 当调用本地DLL时,LabVIEW崩溃,并且收到一条错误消息,说明发生了内存访问冲突(异常代码:0xc0000005). 将LabVIEW版 ...

  8. 将调用密集型的 COM 组件迁移到托管代码

    .NET Framework 提供了一个简单的方法与传统的 COM 组件进行交互.其优点是可以在保留现有投资的同时利用新的平台.但是在某些情况下,保留旧组件的性能开销使得将组件迁移到托管代码是值得的. ...

  9. 安装wamp时出现httpd.exe无法找到组件MSVCR100.dll的解决办法

    很多朋友在安装wamp server时会出现以下错误,安装之后无法启动httpd.exe服务. --------------------------- httpd.exe - 无法找到组件 ----- ...

最新文章

  1. python使用matplotlib可视化、自定义设置Y轴刻度标签字体的大小( setting axis ticks size in matplotlib y axis)
  2. iBatis应用之获取表的元数据
  3. Linux:几个重要的文件处理命令
  4. python定义类_提升你的Python编程能力,细说类的继承,拿走不谢
  5. VMware虚拟机安装Linux系统(详解版)
  6. ubuntu 更新python2.7 ssl 错误解决
  7. java实现五子棋_Java的五子棋实现
  8. hdu 1598 find the most comfortable road 枚举+最小成生树 kruskal 解题报告
  9. ucos 学习:STM32F107 学习板 资料收集
  10. 对刚装好系统的Linux配置软件开发生产环境,让你开发效率一飞冲天!
  11. 念整数(5分) 题目内容: 你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si 注
  12. Apache Avro项目简介
  13. 知乎版ChatGPT「知海图AI」加入国产大模型乱斗,称效果与GPT-4持平
  14. CGAL求最小外包矩形
  15. 《知识的边界》读书笔记
  16. iOS AVSpeechSynthesizer进行文字转语音
  17. 曲神的hu测 T2.Van(左偏树+dp)T3.Gay
  18. 弘辽科技:拼多多dsr是什么意思?有什么用?
  19. ECE 251A MATLAB3
  20. 【浏览器渲染原理】步骤及优化

热门文章

  1. OnCreate()与PreCreateWindow()
  2. 基于vtkVoxelContoursToSurfaceFilter实现勾画图像的轮廓线面重建
  3. html改变元素外边距,CSS 简明教程 - 外边距 ( margin ) 属性
  4. 微信开发(三)创建菜单
  5. MAC电脑删除系统自带的软件
  6. 小雉配置--支持向上向下兼容的 配置文件 兼容性 设计
  7. Java项目:(小程序)前台+后台相结合水果商城系统(spring+spring mvc+mybatis+layui+微信小程)
  8. 使用向量的方法来计算点到直线的距离
  9. ganache命令行安装
  10. 2020年笔记本电脑计算机专业,适合女生用的笔记本电脑排名2020