VB.NET通过VB6 ActiveX DLL调用PowerBasic及FreeBasic动态库
前面说的Delphi通过Activex DLL同时调用PowerBasic和FreeBasic写的DLL,是在WINDOWS基础平台上完成的。 而 .NET平台是架在WINDOWS基础平台之上的,它的上面VB.NET或C#等开发的APP程序,下面写一下用VB.NET,通过VB6注册的Activex DLL公共对象COM,调用PowerBasic和FreeBasic写的DLL实现,核心功能是MKI/CVI MKL/CVL MKS/CVS MKD/CVD的IEEE浮点计算。它们在一些传统产业上还在应用,而且一时半时也不会弃之不用。

先创建新项目

往下翻,找到VB窗体项目,中途大多是C#移动开发。

在项目菜单中选填加引用

确认后加到依赖项下

在窗体上摆一些控件,和VB6设计时的界面内容差不多。

在程序的最上部把注册的COM引用进来

在Command1下写代码
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickDim s As MBFIEEECRC = New MBFIEEECRCTextBox11.Text = "VERSION" : TextBox1.Text = s.ModbusRoutines(PBFB:=1, commandno:=10, commandval:=TextBox11.Text)TextBox11.Text = "AUTHOR" : TextBox10.Text = s.ModbusRoutines(PBFB:=1, commandno:=10, commandval:=TextBox11.Text)TextBox2.Text = s.ModbusRoutines(PBFB:=1, commandno:=1, commandval:="1123.21") 'MKITextBox9.Text = s.ModbusRoutines(PBFB:=1, commandno:=5, commandval:=TextBox2.Text) 'CVITextBox3.Text = s.ModbusRoutines(PBFB:=1, commandno:=2, commandval:="1123.21") 'MKLTextBox8.Text = s.ModbusRoutines(PBFB:=1, commandno:=6, commandval:=TextBox3.Text) 'CVLTextBox4.Text = s.ModbusRoutines(PBFB:=1, commandno:=3, commandval:="1123.21") 'MKSTextBox7.Text = s.ModbusRoutines(PBFB:=1, commandno:=7, commandval:=TextBox4.Text) 'CVSTextBox5.Text = s.ModbusRoutines(PBFB:=1, commandno:=4, commandval:="1123.21") 'MKDTextBox6.Text = s.ModbusRoutines(PBFB:=1, commandno:=8, commandval:=TextBox5.Text) 'CVDEnd Sub
MBFIEEECRC是COM的对外接口,把它NEW一个出来就可以用了,用法和VB6开发差不多一样的,调用函数ModbusRoutines时参数写至里面,有一个地方留心一点。

入口参数是字符串时,先所它放到文本框中再将文本框中的TEXT作为参数使用,不宜直接将字符串作为参数传给COM,因为表面看上去无差别,但存储方式是有差异的,DLL间传送字符串时比较好的解决办法是先放到文本框,再送出文本框内容,在写COM时也如些处理一下,能免去调用时莫明其妙地异常退出。

编译时选用x86模式,因为COM是线程内x32的。如果选了x64模式,编译通不能运行,找不到COM中的函数。正确编译后在x86的debug文件夹下生成可执行文件,同时把VB6的创建的那些DLL考贝进来。

双击WinFormsApp1.exe即可运行,点Command1执行,结果就出来了。

VS2022版的项目文件于下面的链接中
https://download.csdn.net/download/weixin_45707491/88244514
相关文章:
VB.NET通过VB6 ActiveX DLL调用PowerBasic及FreeBasic动态库
前面说的Delphi通过Activex DLL同时调用PowerBasic和FreeBasic写的DLL,是在WINDOWS基础平台上完成的。 而 .NET平台是架在WINDOWS基础平台之上的,它的上面VB.NET或C#等开发的APP程序,下面写一下用VB.NET,通过VB6注册的Activex DLL…...
怎样不引入图片实现前端css实现x关闭按钮
首先初始化一个dom节点 <span class"closeButton"></span>设置样式 .closeButton {width: 12px;height: 12px;margin-top: 5px;margin-right: 5px;float: right;cursor: pointer;color: #105c86;}通过伪元素before after画两条线 margin-left 的设置是…...
SpringBoot实现文件下载的多种方式
SpringBoot实现文件下载的几种方式 1. 将文件以流的形式一次性读取到内存,通过响应输出流输出到前端1.1 下载文件 2. 将输入流中的数据循环写入到响应输出流中,而不是一次性读取到内存,通过响应输出流输出到前端3. 下载网络文件到本地4. 网络…...
uniapp简单版语音播放
mounted() {this.ScanAudio(http://118.178.137.235:88/ipoker.mp3, 3); // 开始播放音频},ScanAudio(url, count) {// 递归终止条件:当循环次数小于等于 0 时,停止递归if (count < 0) return;// 创建内部音频上下文对象var music uni.createInnerAu…...
前端三剑客入门一文解决
文章目录 HTML快速开发网站Flask页面结构标签基础标签超链接图片列表下拉框表格input系列多行文本form表单 网络请求HTML案例 CSSCSS盒模型CSS样式定义CSS选择器 CSS样式使用1. 在标签上直接写2. 在head标签中写3.写到css文件中 标签样式1. 高度和宽度2. 块级和行内标签3.字体设…...
php curl apache 超时 500错误
web请求超过40s 就返回500错误 php的超时时间 set_time_limit无效 curl CURLOPT_TIMEOUT 设置请求时间 无效 设置apache Timeout 链接超时 无效 最后添加 Fcgid才可以 apache 配置文件 httpd.conf <IfModule mod_fcgid.c>FcgidProcessLifeTime 10000FcgidIOTimeout 1000…...
ValueError: too many values to unpack (expected 4)
ValueError: too many values to unpack (expected 4)这个错误通常是由于解包赋值个数与返回值个数不匹配所致。 比较常见的情况是: 1.在数据预处理函数中,使用train_test_split对数据进行分割后返回值,但解包赋值时个数与返回值不匹配。 train_test_split返回的就是(X_trai…...
学习Vue过程中遇到的问题汇总
Vue 控制台出现You are running Vue in development mode. Make sure to turn on production mode when deploying for production. 在页面的body标签或head标签中加入如下代码 <script type"text/javascript">Vue.config.productionTip false</script>…...
cloud_mall-notes03
请求方式GetMapping(11)用途方法返回值GetMapping(“info”)查询管理员信息getByIdsysUserGetMapping(“info/{userId}”)查询管理员详情getByIdsysUserGetMapping(“info/{roleId}”)查询角色详情getByIdsysRoleGetMapping(“info/{categoryId}”)根据标…...
Redis注入中出现的问题
Redis注入中出现的问题 出现的问题 Error starting ApplicationContext. To display the conditions report re-run your application with debug enabled. 2023-08-23 16:38:42.294 ERROR 32136 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *********…...
机器学习实战之模型的解释性:Scikit-Learn的SHAP和LIME库详解
引言:机器学习模型的“黑箱”困境 机器学习模型的崛起让我们惊叹不已!不论是预测房价、识别图片中的猫狗,还是推荐给你喜欢的音乐,这些模型都表现得非常出色。但是,有没有想过,这些模型到底是如何做出这些决…...
【网络安全】防火墙知识点全面图解(二)
本系列文章包含: 【网络安全】防火墙知识点全面图解(一)【网络安全】防火墙知识点全面图解(二) 防火墙知识点全面图解(二) 21、路由器的访问控制列表是什么样的?22、防火墙的安全策…...
【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(8 月 14 日论文合集)
文章目录 一、检测相关(7篇)1.1 Continual Face Forgery Detection via Historical Distribution Preserving1.2 Exploring Predicate Visual Context in Detecting of Human-Object Interactions1.3 Out-of-Distribution Detection for Monocular Depth Estimation1.4 Cyclic-…...
自学设计模式(类图、设计原则、单例模式 - 饿汉/懒汉)
设计模式需要用到面向对象的三大特性——封装、继承、多态(同名函数具有不同的状态) UML类图 eg.—— 描述类之间的关系(设计程序之间画类图) : public; #: protected; -: private; 下划线: static 属性名:类型(默认值…...
python爬虫10:selenium库
python爬虫10:selenium库 前言 python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产…...
c++ java rgb与nv21互转
目录 jni函数 c++ rgb转nv21,可以转,不报错,但是转完只有黑白图 java yuv420保存图片,先转nv21,再保存ok: c++ yuv420月bgr互转,测试ok jni函数 JNIEXPORT void JNICALL Java_com_tencent_blazefacencnn_BlazeFaceNcnn_encode(JNIEnv *env,jobject thiz, jobject in…...
多视图聚类(multi-view clustering)简介
多视图聚类 目前大概有以下几种: 多视图k-means聚类多视图谱聚类多视图图聚类多视图子空间聚类 (multi-view subspace clustering)深度学习多视图聚类 (deep multi-view clustering) 其中多视图子空间聚类具有不错的数据表征能力。 对于多视图子空间聚类而言&…...
wazhu配置以及漏洞复现
目录 1.wazhu配置 进入官网下载 部署wazhu 修改网络适配器 重启 本地开启apache wazhu案例复现 前端页面 执行 1.wazhu配置 进入官网下载 Virtual Machine (OVA) - Installation alternatives (wazuh.com) 部署wazhu 修改网络适配器 重启 service network restart 本地…...
javaweb项目部署linux服务器遇到的问题
其他有关本次部署内容请参考本站其他文章 javaweb项目要用war包 IntelliJ IDEA 可以打包out里的子目录 D:\D盘文件\浏览器\webshop\out\artifacts\webshop_war_exploded>jar cvf webshop.war * 方法来源视频 18、web项目的打包与发布_哔哩哔哩_bilibili myeclipse项目…...
【数据结构OJ题】环形链表
原题链接:https://leetcode.cn/problems/linked-list-cycle/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 整体思路:定义快慢指针fast,slow,如果链表确实有环,fast指针一定会…...
前后端时间数据类型不一致如何解决
本文分析了前端和后端时间数据类型的不一致性,并提供了具体的解决方案。问题的根源是后端返回的时间数据类型与前端预期类型不一致,导致前端无法直接处理。后端采用Javatimestamp类型和MySQLdatetime类型存储时间,前端typescript定义createti…...
ComfyUI翻译节点终极指南:如何选择最适合你的AI创作翻译工具
ComfyUI翻译节点终极指南:如何选择最适合你的AI创作翻译工具 【免费下载链接】ComfyUI_Custom_Nodes_AlekPet Custom nodes that extend the capabilities of Comfyui 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_Custom_Nodes_AlekPet 在AI图像生…...
阿里开源Z-Image镜像体验:ComfyUI可视化生成汉服美女实战
阿里开源Z-Image镜像体验:ComfyUI可视化生成汉服美女实战 1. 开篇:当汉服遇见AI绘画 想象一下,你只需要输入"一位穿着汉服的中国女性站在樱花树下",AI就能在几秒钟内生成一张细节精致的写实风格图像。这不再是科幻场景…...
Qwen3.5-35B-A3B-AWQ-4bit企业应用:HR招聘简历图识别+关键资质自动核验系统
Qwen3.5-35B-A3B-AWQ-4bit企业应用:HR招聘简历图识别关键资质自动核验系统 1. 企业招聘场景的痛点分析 在传统HR招聘流程中,简历筛选和资质核验是最耗费人力的环节之一。每天面对堆积如山的纸质简历和PDF文件,HR需要: 手动翻阅…...
网络通信技术基础知识,网络通信技术数据包介绍
网络通信技术是关键技术之一,对于网络通信技术,我们应对其有所了解。为增加大家对网络通信技术的认识,本文将对网络通信技术的数据包结构和原理予以介绍。如果你对网络通信技术存在兴趣,不妨继续往下阅读哦。 在网络通信中, "…...
如何让foobar2000界面脱胎换骨?3大设计理念打造个性化音乐体验
如何让foobar2000界面脱胎换骨?3大设计理念打造个性化音乐体验 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 副标题:从安装到定制:零基础也能掌握的foobox-cn美化…...
Python: 多优化算法TSP求解方案,物流路径规划代码实践 - 附详尽注释及标准数据集
Python:模拟退火算法、蚁群算法、遗传算法、粒子群算法求解旅行商问题(TSP)的Python代码程序。 物流路径规划问题。 -- 数据集采用的tsplib标准数据集,可以根据自己需求修改城市坐标。 代码完整,注释详细,打印每次迭代结果&#x…...
M1 Mac 8GB内存跑不动7B模型?手把手教你用1.5B版DeepSeek+RAGFlow搭建个人知识库
M1 Mac 8GB内存跑不动7B模型?手把手教你用1.5B版DeepSeekRAGFlow搭建个人知识库 当M1 Mac用户尝试在本地部署大语言模型时,8GB内存往往成为难以逾越的障碍。特别是运行7B参数模型时,内存不足导致的崩溃和卡顿让许多开发者望而却步。本文将分…...
告别软件盗版烦恼:用YT88加密狗5分钟搞定C#/Java/Python源代码加密(附完整开发包下载)
5分钟实现多语言源代码加密:YT88加密狗实战指南 独立开发者最头疼的问题之一,就是辛苦编写的代码被轻易反编译或盗用。上周我的一个朋友就遇到了这种情况——他花了三个月开发的Python数据分析工具,刚上线两周就被破解并免费传播。这种经历在…...
墨语灵犀助力软件测试:智能测试用例生成与缺陷报告分析
墨语灵犀助力软件测试:智能测试用例生成与缺陷报告分析 作为一名在软件测试领域摸爬滚打多年的工程师,我深知这份工作的“痛”与“乐”。痛的是,面对动辄几十上百页的需求文档,手动编写测试用例的枯燥与耗时;乐的是&a…...
