PowerBuilder调用外部VB6 ActiveX EXE公共对象

news2024/11/19 5:46:21

学习的同时习练PowerBuilder对VB6 ActiveX exe公共对象的调用,初步感觉PowerBuilder调用DLL还是要求比较严格的,APP和powerbuilder本身都比较脆弱、易崩溃,因此,

1. 直接调用外部DLL时,传递地址参数,尽量不传递字符串;

2. 从DLL返回时,尽量不回写传送的地址,而用export返回结果;

3. 用ActiveX exe非常安全,因为 Activex exe本身是外部运行的程序。

在链接的《VB6创建ActiveX exe简单方法》

VB6创建ActiveX exe简单方法_Mongnewer的博客-CSDN博客

中习练过Activex exe的创建,总结起来是在工程中模板中把自己要做的事情封装在CLASS中,然后加个模块,写个sub main() 过程即可。技巧是在 sub main()中读取命令行参数,避免直接点击误装入,另外是调用程序退出时清除掉这个进程。Activex EXE只做个简短回顾,下面是在powerbuilder中调用它的实践。

 程序的 Direct PBasic DLL是首次学习时对PowerBasic写的DLL的直接调用,VB6 ActivexEXE 是对 Activex EXE 公共对象的调用。

1. 首先在 Global 中定义对象和需要的变量

OLEObject MBFObj
Integer li_rc

2. 接下来在主窗体 open 时装入 activex EXE, 然后创建 OLEObject,将其 ConnectToNewObject 连接到 activex EXE中的那个唯一的类, 文件名.类名

Byte hExternCOM = 0
hExternCOM = Run("MBFMODIEEE.exe !@#$*&^%12348765", Minimized!)

IF hExternCOM = 1 THEN	//COM is succesfully loaded.
	MBFObj = CREATE OLEObject
	li_rc = MBFObj.ConnectToNewObject("MBFMODIEEE.MBFIEEECRC")
	
	IF li_rc < 0 THEN
   		DESTROY MBFObj
		MessageBox("Connecting to COM Object Failed",  &
   		"Error: " + String(li_rc))
		Return
	END IF
END IF

3. 在主窗体的 “VB6 ActivexEXE” 钮的click事件中加入调用代码,完成调用功能。

	sle_6.text = MBFobj.ModbusRoutines(10, "VERSION") 
	sle_7.text = MBFobj.ModbusRoutines(10, "AUTHOR") 
	
	sle_2.text = MBFobj.ModbusRoutines(1, sle_1.text) 
	sle_8.text = MBFobj.ModbusRoutines(5, sle_2.text) 
	
	sle_3.text = MBFobj.ModbusRoutines(2, sle_1.text) 
	sle_9.text = MBFobj.ModbusRoutines(6, sle_3.text) 

	sle_4.text = MBFobj.ModbusRoutines(3, sle_1.text) 	
	sle_10.text = MBFobj.ModbusRoutines(7, sle_4.text) 	

	sle_5.text = MBFobj.ModbusRoutines(4, sle_1.text) 	
	sle_11.text = MBFobj.ModbusRoutines(8, sle_5.text) 	
	
	sle_13.text = MBFobj.ModbusRoutines(9, sle_12.text) 

4. 在主窗体关闭时 DESTROY MBFObj   ,将创建的MBFObj销毁。

程序运行时在任务管理器中观察不到MBFMODIEEE进程,它被封闭在了 SAP AG Product File 进行之中,当退出PowerBuilder应用程序时,SAP AG 的全部支持进程自动销毁,不需单独对用户进程做处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/946283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

音频接口电路的PCB设计注意事项

Audio接口是音频插孔&#xff0c;即音频接口&#xff0c;可分为Audio in接口和Audio out接口。音频接口是连接麦克风和其他声源与计算机的设备&#xff0c;其在模拟和数字信号之间起到了桥梁连接的作用。 其余走线要求如下&#xff1a; 1、所有CLK信号建议串接22ohm电阻&#…

【零基础算法】Vector动态数组

为什么开始先更新数据结构&#xff1f;博主其实一开始也不怎么喜欢调这些数据&#xff0c;觉得用C语言造轮子才是最好的。后面学习过程中学习的算法逐渐复杂&#xff0c;实际上会发现&#xff0c;了解和调用一些已经写好的库工具是很方便的一件事&#xff0c;我们需要做的是知道…

计算机竞赛 基于机器视觉的手势检测和识别算法

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…

伺服电机驱动器EMC处理方案

伺服驱动器内部也有低压单元&#xff0c; 很可能受到驱动器外围设备的噪音干扰&#xff0c;受到干扰的信号可能会引起设备做出意想不到的动作 为防止伺服驱动器和其外围设备之间的相互电磁干扰&#xff0c; 可根据采取以下的对策&#xff1a; ● 请务必使驱动器及电机良好的接…

USB与蓝牙通信原理图设计

蓝牙模块设计&#xff1a; USB2.0 ----ESD保护芯片---- USB转串口芯片&#xff08;CP2104-F03-GMR&#xff09;--------- PTR5618蓝牙模块 ---------- PTR5618的GPIO0\GPIO1作为IIC与EEPROM芯片通信 &#xff08;AT24CS04-STUM-T&#xff09; 磁珠的作用是一直EMI干扰。 一…

《Go 语言第一课》课程学习笔记(十二)

函数 Go 函数与函数声明 在 Go 语言中&#xff0c;函数是唯一一种基于特定输入&#xff0c;实现特定任务并可返回任务执行结果的代码块&#xff08;Go 语言中的方法本质上也是函数&#xff09;。在 Go 中&#xff0c;我们定义一个函数的最常用方式就是使用函数声明。 第一部…

虚拟直播从0到1全套解决方案,码住这个神器,小白也能轻松涨粉过万!

直播行业历经十余年生长&#xff0c;用户规模持续上升&#xff0c;成为平台经济领域的中流砥柱。同时&#xff0c;元宇宙的兴起也推动了虚拟现实等先进技术在直播行业的应用&#xff0c;越来越多的老板开始尝试使用虚拟直播完成各类形式的直播活动&#xff0c;与传统型的直播间…

Web核心基础总结

尚硅谷课程&#xff1a;293-尚硅谷-Filter-什么是Filter过滤器_哔哩哔哩_bilibili JavaWeb核心技术点&#xff1a; Servlet程序、Filter过滤器、Listener监听器、jsp页面、EL表达式、JSTL标签库、jQuery框架、Cookie技术、Session会话、JSON使用、Ajax请求&#xff0c; 第一…

独立服务编排逻辑引擎:jvs-logic服务原子组件介绍

逻辑引擎的本质是可视化的服务编排是指使用图形化工具、配置和管理原子服务间的工作步骤和调用关系。这种方法可以快速的实现业务功能&#xff0c;使非开发人员也能轻松地创建和管理服务的工作流程。 可视化服务编排工具提供了直观的界面和丰富的功能&#xff0c;以及便捷的执行…

【 ARMv9 Cluster BUS QoS 配置】

文章目录 ARM Cluster QoS ARM Cluster QoS QoS&#xff08;Quality of Service&#xff0c;服务质量&#xff09;在 ARM 架构中&#xff0c;主要指的是一种机制&#xff0c;它可以控制和管理系统资源&#xff08;如内存、总线带宽等&#xff09;的使用&#xff0c;以满足各种…

关于#include<bits/stdc++.h>的说明

关于#include<bits/stdc.h>的说明 在看C/C竞赛题时&#xff0c;经常看到#include<bits/stdc.h>。什么意思呢&#xff1f; 有人称<bits/stdc.h>为万能头文件。其 优点&#xff1a;   1、在竞赛中节约时间。   2、减少了编写所有必要头文件的工作量。  …

SSM - Springboot - MyBatis-Plus 全栈体系(二)

第一章 Maven 三、Maven 核心功能依赖和构建管理 1. 依赖管理和配置 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题&#xff0c;使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程…

安全帽人脸联动闸机开关算法

安全帽人脸联动闸机开关算法通过yolov7python网络模型深度学校框架 &#xff0c;安全帽人脸联动闸机开关算法能够判断人员是否穿戴规定的工装是不是现场人员&#xff0c;当穿戴合规且为现场人员&#xff0c;闸机门禁才打开。YOLO的结构非常简单&#xff0c;就是单纯的卷积、池化…

PostgreSQL中字符串与ASCII码互转

PostgreSQL中字符串与ASCII码互转 一、字符串转ASCII码&#xff1a;ascii ( text ) → integer二、ASCII码转字符串&#xff1a;chr ( integer ) → text 一、字符串转ASCII码&#xff1a;ascii ( text ) → integer 返回参数的第一个字符的数字代码。在UTF8编码中&#xff0c…

I IntelliJ IDEA 2023.2 最新解锁方式,支持java20

在 IntelliJ IDEA 2023.1 中&#xff0c;我们根据用户的宝贵反馈对新 UI 做出了大量改进。 我们还实现了性能增强&#xff0c;从而更快导入 Maven&#xff0c;以及在打开项目时更早提供 IDE 功能。 新版本通过后台提交检查提供了简化的提交流程。 IntelliJ IDEA Ultimate 现在支…

解决Docker镜像国内无法下载问题

近期由于docker镜像仓库禁止国内下载&#xff0c;国内各平台均无法下载更新最新docker镜像。为解决此问题&#xff0c;大家可以使用dockerproxy代理下载。 使用方法&#xff1a; 大家只需打开docker proxy代理网站&#xff0c;在快捷命令中输入所需镜像和版本&#xff0c;点击…

基于野狗算法优化的BP神经网络(预测应用) - 附代码

基于野狗算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于野狗算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.野狗优化BP神经网络2.1 BP神经网络参数设置2.2 野狗算法应用 4.测试结果&#xff1a;5.Matlab代码 摘要…

23款奔驰S500加装车载冰箱系统,快乐就是这么朴实无华呀

凉爽餐饮随时触手可及。容积10升的可拆卸冷藏箱与后排扶手和谐融合。如此一来&#xff0c;即使在炎炎夏日&#xff0c;也可享受沁凉的冷饮。

cookie和session是什么,区别是什么?

cookie HTTP 协议中的 Cookie 包括 Web Cookie 和浏览器 Cookie&#xff0c;它是服务器发送到 Web 浏览器的⼀ ⼩块数据。服务器发送到浏览器的 Cookie&#xff0c;浏览器会进⾏存储&#xff0c;并与下⼀个请求⼀起发送到服务器。通 常&#xff0c;它⽤于判断两个请求是否来⾃…

ThinkPHP 文件上传 fileSystem 扩展的使用

ThinkPHP 文件上传 ThinkPHP 文件上传 扩展 filesystem一、安装 FileSystem 扩展二、认识 filesystem 配置文件 config/filesystem.php三、上传验证&#xff08;涉及到验证器的知识点&#xff09;四、文件上传demo ThinkPHP 文件上传 扩展 filesystem ThinkPHP 为我们 提供了 …