abap调vb写的dll实现电子天平的读数(带控件版)
废话不多说,直接上。
鉴于abap调研的dll文件需要在wins注册,自己尝试过delphi和C#感觉不是很好,最后毅然选择了VB来写
因为需要用到MScomm控件,所以对于将要写的dll需要带form的,貌似这样才能将控件加到dll中来。
步骤:
1,新建dll程序,添加一个窗体
2,在from_load中初始化com口参数
1
2
3
4
5
6
7
8
|
With MSComm1 .CommPort = 1 '设置Com1为通信端口 .Settings = "1200,n,7,1" '设置通信端口参数 9600赫兹、偶校验、7个数据位、1个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。 .InBufferSize = 16 '设置缓冲区接收数据为40字 .InputLen = 1 '设置Input一次从接收缓冲读取字节数为1 .RThreshold = 1 '设置接收一个字节就产生OnComm事件 .PortOpen = True End With |
3,写对应的端口数据接受(因为之前用端口测试工具测试过传出的数据流,所以下面代码只是针对特定数据流的截取)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
On Error Resume Next If MSComm1.CommEvent = comEvReceive Then If MSComm1.InBufferCount > 0 Then Rx_buff = MSComm1.Input If Rx_buff = "N" Then start = "S" Constop = False For i = 0 To UBound(Rx_buff) If start = "S" Then send = send & Rx_buff If Len(send) > 17 Then Text1.Text = CDbl (Mid(send, 8, 10)) start = "E" MSComm1.PortOpen = False End If End If Next i End If End If |
4,在dll的class1中写函数啦
1
2
3
4
5
6
7
8
9
|
Public Function show() Form1.str = "s" Form1.Caption = "连接状态" Form1.show vbModal End Function Public Function sget() As String sget = Form1.str & Form1.send End Function |
先调出窗口,再获取端口值
因为能力有限,在测试的时候无法将窗口隐藏而不影响到form_load的执行,所以,才有这个必须出现的窗口
好了,至此,一个带from的调用Mscomm控件的dll文件就写好了,
5,将dll文件保存到system32/syswow64下
运行cmd注册dll文件
6,abap调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
REPORT ZLYTEST_DLLTEST001. include ole2incl. data win32 type ole2_object. DATA SUM TYPE I. data label type string. create object win32 'lytest10.class1' . *create object win32 'TESTDLL' . call METHOD of win32 'show' . call method of win32 'sget' = label. * 0 Successful processing of the method meth. * 1 Communication Error to SAP GUI. * 2 Error when calling method meth. * 3 Error when setting a property. * 4 Error when reading a property. * write label. |
至此,就将数据带回abap来了,然后怎么操作这个数,就看需求啦
abap调vb写的dll实现电子天平的读数(带控件版)的更多相关文章
- VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示
1.VB高效导入Excel2003和Excel2007文件到MSHFlexGrid控件显示 2.以前也有Excel导入通用功能,但速度有些慢一会把两种实现方式都提供出为参考对比. 一.原通用导入exc ...
- 图形报表 webChart.dll 以及其它的图形报表控件 (转)
http://www.carlosag.net/Tools/WebChart/sampleDataSet.aspx http://www.carlosag.net/Tools/WebChart/sam ...
- 假设写一个android桌面滑动切换屏幕的控件(一)
首先这个控件应该是继承ViewGroup: 初始化: public class MyGroup extends ViewGroup{ private Scroller mScroller; priva ...
- VB将PDF流写入ACCESS数据库,通过AcroPDF控件读出PDF流之实现
问题描述: 1.把pdf文件写入access2.读出时用AcroPDF控件 问题解答: 使用流对象保存和显示图片与文件打开vb6,新建工程. 添加两个按钮,一个image控件注意:Access中的ph ...
- 在VB中动态执行VBS代码,可操控窗体控件
通过执行一段VBS代码来操控窗体内的控件也可以使用AddObject方法添加自己的类,那么在动态VBS代码中也一样可以使用在增加程序扩展性或是有脚本化需求的时候,这个方法还是不错的. Option E ...
- NX二次开发-调内部函数UGS::UICOMP_enum::set_width(int)更改BlockUI的枚举控件宽度
版本 NX11+VS2013 内容说明 这个内部函数的设置方法,我之前不会,是QQ群里的一位大佬分享出来的. 关于这块,我也百度搜了一下,找到了几个相关的. 1.直接手动修改BlockUI界面 在低版 ...
- 我写的一个Qt 显示二维码( QR Code)的控件(可以去掉对 libpthread 的依赖,而且编译出的库文件可以在 vc2010 的release 模式下使用)
最近一个项目需要显示二维码,所以花了点时间(只用了一个晚上,写的很不完善),写了个显示二维码的控件.当然这个控件用到了些开源的代码,比如qrencode,所以我也打算把我的代码开源. 我的代码参考了 ...
- 多年前写的文本框扩展控件(有ValueChanging事件等),已放github
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 起因 代码 使用 GitHub ...
- c++ c# java 调用 c++ 写的dll
1. vs 中新建win32 dll 项目 testdll 添加实现文件 test.cpp #include "stdafx.h" #include <ios ...
随机推荐
- 关于ThinkPHP3.2框架接收不到json数据的解决办法
原因分析: 在tp框架中,我们经常使用的 I 方法是加过验证和默认的函数过滤的.所以我们接收的值当我们json_decode的时候就会出现空的字段 那么我们是不是又会像网上说的不用 I 方法用 $_ ...
- Oracle学习笔记(1)----忘记用户名的密码该如何找回
(1)在连接数据库之前需要打开如下服务: (2)如果忘记用户的密码 I:打开cmd窗口 II:键入命令:connect / as sysdba; III:alter user 用户名 identifi ...
- Linux下几种文件传输命令 sz rz sftp scp
Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...
- Mvc 模块化开发
在Mvc中,标准的模块化开发方式是使用Areas,每一个Area都可以注册自己的路由,使用自己的控件器与视图.但是在具体使用上它有如下两个限制 1.必须把视图文件放到主项目的Areas文件夹下才能生效 ...
- 在SpringMVC框架下实现文件的 上传和 下载
在eclipse中的javaEE环境下:导入必要的架包 web.xml的配置文件: <?xml version="1.0" encoding="UTF-8" ...
- HTMl链接- target/ name
下面解释一下链接标签的另外两个属性:target和name HTML 链接 - target 属性 使用 Target 属性,你可以定义被链接的文档在何处显示. 下面的这行会在新窗口打开文档: < ...
- video 播放
视频播放是个坑... HTML5 Video API : https://www.w3.org/2010/05/video/mediaevents.html 虽然界面很丑,但是事件.属性很全. 进行视 ...
- vs远程发布
安装IIS管理服务Web Management Service 在IIS中,选择服务器结点,然后在内容里面打开[管理服务],右边操作栏里面停止服务,把[启用远程连接]前面复选框选上.然后选在下面的使用 ...
- js多个输入框运算计算结果输出到另一个输入框
<div id="ckjrzy_4_14_15"> <div id="ckjrzy_4_14_17">收益计算器 </div& ...
- “static”引发的一个错误
昨天晚上,舍友发来一个程序,先把代码贴上: #include<stdio.h>#define N 20short bufferA[N]={1,2,3,4,5,6,7,8,9,10,11, ...