- 博客(28)
- 资源 (61)
- 收藏
- 关注
原创 让Delphi组件和C++ Builder共用
2、打开相应版本的Delphi版目录,发现有两个VirtualTreesD和VirtualTreesR两个Delphi安装包,从我们无比幸福的Delphi用户那里,我们可以窃听到一个重要的信息:以R结尾的一般是运行时包,以D结尾的一般是设计期包。同样的经验适用于其它绝大多数Delphi控件,比如Graphics32,但注意你可能需要对最终生成的HPP文件做一些改动,以避免与C++里自带的内容冲突,这个遇到一处改掉一处,就不再缀述了。如果你只装了CB或只装了Delphi,你就重装吧。
2024-08-23 09:16:55 254
原创 4个概念讲明白大端和小端格式
当你把char*强制类型转化成int*后,因为int占四个字节,那么p指向@0,并且*p占有的地址是@0@1@2@3,打印的时候 先进行++p操作,那么p指向@4,此时*p占有的地址是@4@5@6@7,根据上面地地址存地位,高地址存高位的解释,那么*p应该等于0x37363534。而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节)。若字节序为little-endian,则读出结果为0xcdab3412。
2024-08-14 16:13:37 1044
原创 Modbus-Ascii注意事项
2:数据每个8位的字节被拆分为两个ASCII字符进行发送,所以收到数据后两个字符组成一个16机制字符串,这个字符串转10进制后就是实际收到的数值。3:同样因8位的字节被拆分为两个ASCII字符,在计算LRC时候数据去两个字符组成16进制数据,进行叠加,之后取反加1。(ASCII表示为 0x0D和 0x0A)结尾;所有其他字段传输的数据所允许的十六进制表示字符为的。字符开头(ASCII表示为 0x3A),以回车换行对。
2024-08-13 15:37:20 584
原创 Modbus ASCII
LRC 的计算,对报文中的所有的连续 8 位字节相加,忽略任何进位,然后求出其二进制补码。在 ASCII 模式,LRC 的结果被ASCII 编码为两个字节并放置于 ASCII模式报文帧的结尾,CRLF 之前。接收设备在接收报文时重新计算 LRC 的值,并将计算结果于实际接收到的 LRC 值相比较,如果两个值不相等,则为错误。一个报文必须以一个‘冒号’(:)(ASCII 十六进制 3A)起始,以‘回车-换行’(CR LF)对(ASCII十六进制0D和0A)结束。2.每次接收到“:”字符表示新的报文的开始。
2024-08-12 19:18:30 983
原创 ModbusRTU
Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。
2024-08-12 18:55:53 196
原创 Modbus Tcp数据通讯实测
由于计算机只识别0和1两个信号,即开关量信号,用其来表示数值都是使用数字串来表示,由于计算能力的问题,其数字串不能无限长,即其表达的精度也是有限的,同样的以温度为例,由于数字串限制,其表达温度的精度只能达到0.1度,小于该单位的数值则不能被标称,这样就必须将离散量进行量化,将其变为数字量。综上所述,模拟量就是在某个过程中时间和数量连续变化的物理量,由于在实际的应用中,所有的仪器设备对于外界数据的采集都有一个采样周期,其采集的数据只有在下一个采样周期开始时才有变动,采样周期内其数值并不随模拟量的变化而变动。
2024-08-12 18:50:17 1040
原创 Modbus TCP协议
在modbus中,每一个数据都有一个地址,在数据请求的时候,针对线圈(开关量)都是进行批量请求,所以在接收到服务端返回的数据的时候,需要用户自己来维护。例如,在编程中,你可能会用一个布尔变量来控制一个循环是否继续执行或判断一个条件是否满足,类似地,在Modbus中,线圈可以用来控制一个电机的启停或检测某个开关是否被激活。按照字节来解析,最主要还是需要看转换过程,比如ABCD->DCBA->CDAB 相当于在程序中表达的ABCD字节,在进行modbus传输的时候需要将数据字节顺序转换成CDAB,以此类推。
2024-08-12 18:48:22 1482
原创 支付宝接口
以上几个参数,都是支付宝再审核通过后,通过邮件发送给商家的,其中RSA的两个公私钥,需要商户自己根据手册自行生成并上传和保存,具体这一步请务必参考支付宝开放平台的说明。Assert(@PEM_read_bio_RSA_PUBKEY <> nil, 'PEM_read_bio_RSA_PUBKEY加载失败');业务平台根据客户端提交的商品信息,生成自己的订单号等内容,并按照第三方支付的要求对订单信息进行拼装组合,并编码和签名。Assert(@rsa_sign <> nil, 'RSA_sign加载失败');
2024-08-08 08:37:43 607
原创 带进度条复制文件代替copyfile
ShellExecute(self.Handle,'open',PChar('D:\AD未备份20230619\数据上传.exe'),'','',SW_SHOWNORMAL );CopyFile( '\192.168.0.241\ljk\数据上传.exe','D:\AD未备份20230619\数据上传.exe',False);myFileCopy('C:\芯片\kang.rar','c:\kang.mp4');//关闭主程序,参数名进程的显示名称即exe的名称。//用ProgressBar控件。
2024-08-08 08:26:38 799
原创 DELPHI分割字符串
在 Delphi 中,分割字符串可以通过多种方式实现,最常用的方法是使用 TStringList、String.Split 方法(在 Delphi 2009 及以上版本中可用),或者使用正则表达式。如果只需要简单的分隔符分割,TStringList 和 String.Split 是最常用的选择。// 使用分隔符(;如果您使用的是 Delphi 2009 或更高版本,可以使用 String.Split 方法来分割字符串。
2024-08-07 19:10:01 358
原创 DelphiJNI实际调试
1:下载 DelphiJNI:下载地址https://github.com/aleroot/DelphiJNI,版本比较老,没有找到其他,就用这个吧,如朋友有较新的pas文件,请留言下。2:下载jdk,这里下载JDK,这里使用javase-jkd18,也不知道这个版本要不要收费,这里学习用暂时不关新这个。5:运程过程中几经折腾,编译为32不能正常运行,64为依然提示找不到jvm.dll,path中添加路径,6位下正常调用。
2024-08-07 19:05:26 259
原创 java编译错误,找不到包的解决办法
确保在运行 Java 程序时,类路径(classpath)中包含了定义 CryptionUtil 类的 JAR 文件或编译后的类文件。类文件是否在正确的目录结构中(即 com/sltas/front/third/util/CryptionUtil.class)。如果 CryptionUtil 类在某个 JAR 文件中,确保该 JAR 文件没有损坏,并且能够被 JVM 正确读取。确保 CryptionUtil 类文件存在于指定的类路径中。如果它在 JAR 文件中,确保该 JAR 文件在类路径中。
2024-08-07 19:03:06 400
原创 jin版本
Version InformationGetVersionjint GetVersion(JNIEnv *env);Returns the version of the native method interface. For Java SE Platform 21 and later, it returns JNI_VERSION_21. The following table gives the version of JNI included in each release of the Java
2024-08-07 18:57:43 329
原创 javac 提示类文件具有错误的版本 62.0,应为 52.0
您遇到的错误提示 "类文件具有错误的版本 61.0, 应为 52.0" 表示您正在尝试运行一个使用较新版本的 Java 编译的类文件,而您的 Java 运行环境(JRE)版本较旧。您遇到的错误提示 "类文件具有错误的版本 62.0, 应为 52.0" 表示您正在尝试运行一个使用较新版本的 Java 编译的类文件,而您的 Java 运行环境(JRE)版本较旧。安装新版本的 JDK 后,确保将 JAVA_HOME 环境变量指向新安装的 JDK 目录,并将 JDK 的 bin 目录添加到系统的 PATH 中。
2024-08-07 18:43:33 337
原创 jvm执行代码注释部分
MessageBox(Handle, PChar(Format('JavaClassForDelphiTest.goTest Result: %s', [strResult])), 'Delphi 10.3 调用 Java Class', MB_OK OR MB_ICONINFORMATION);2、Java内部字符串String用得都是是Unicode编码,所以Java内部的字符串可以说是没有编码的,// 参数类型,返回值类型。
2024-08-07 18:25:33 237
原创 创建 Java 虚拟机JVM中的参数说明
1、上一篇创建虚拟机的代码加参数备注varbegin{ 创建 Java 虚拟机 }//这个选项设置 Java 类路径,指定 JVM 应该在哪里查找用户定义的类文件。您可以将其设置为包含您的 Java 类的目录//JNI version java接口的版本号//给虚拟机参数赋值//Options数组的个数//忽略无法识别的选项begin。
2024-08-07 18:24:24 361
原创 delphi调用Java类
MessageBox(Handle, PChar(Format('JavaClassForDelphiTest.goTest Result: %s', [strResult])), 'Delphi 10.3 调用 Java Class', MB_OK OR MB_ICONINFORMATION);MessageBox(Handle, 'Create Java Env Error', 'Delphi 10.3 调用 Java Class', MB_OK OR MB_ICONERROR);
2024-08-07 18:23:15 984
原创 jdk的安装
变量值:JDK文件的路径,如果是默认的话,应该是C:\Program Files\Java\jdk1.8.0_241。4.往下翻,找到【java下载页面】,点击【Download Java now】进入JDK下载界面。1.键盘【win+R】,打开【运行】,输入【cmd】回车,进入命令行窗口。1.按照【计算机】-右键【属性】-往下拉【高级系统设置】-【环境变量】2.输入【java -version】(注意java后面有一个空格)2.在【系统变量】里面【新建】3.在【系统变量】里面【新建】
2024-08-07 18:20:30 478
原创 Delphi RSA签名与验签 国密sm2签名和验签
通常OpenSSL类库实现,确实也很方便,但对应libeay32.dll库不好确定,在delphi7下调试通的在xe下就又不好试了,继续。最近工作上安排了一个支付接口的项目,我看其中涉及到了RSA签名加解密,提供了Java的代码,delphi RSA算法不会搞,于是调用Java代码的实现,速度慢不说,出参和入参都不方便,遂项目上线后继续寻找Rsa在delphi下的实现方法,1、使用。寻找方式2、使用cnpack的加密单元,看介绍cnpack不依赖任何三方库,确实挺好。
2024-07-29 21:25:49 262
JDK添加环境变量工具
2024-07-29
Delphi11 中通过JNI调用 Java 函数
2024-07-29
Delphi RSA签名与验签 国密sm2签名和验签 工具
2024-07-25
TThread.CreateAnonymousThread()匿名开线程demo,同步和异步都有
2024-07-01
delphi的键盘和鼠标钩子
2024-03-25
Git TortoiseGit
2024-02-02
数组保存为二进制文件和逆过程
2024-01-19
mqtt for delphi7
2024-01-14
delphi mqtt客户和服务端
2024-01-06
使用vlc styles改变opendialog
2024-01-04
delphi中使用FastScript执行pascal脚本的demo
2024-01-04
OmniThreadLibrary学习笔记
2023-12-09
iocomp 访问 opc
2023-10-24
delphi安装及常用控件安装实录
2023-05-07
Raize-KonopkaControls-280-7.0.8 for Delphi 11
2023-04-26
功能完备的手机店进销存管理系统
2023-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人