摘要: 在调用dll时可能出错浮点异常错误,使用以下语句屏蔽之:uses Math; SetExceptionMask(GetExceptionMask + [exInvalidOp]);或者都屏蔽了:SetExceptionMask([exInvalidOp..exPrecision]);SetExcep 阅读全文
posted @ 2024-11-03 23:06 禁卫军 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Lazarus调用Opencl可有效提高数据处理能力,但是如果Opencl源代码有问题,Lazarus调试起来比较麻烦。自己开发了一个OPencl编译测试器,可以对源码进行测试,并找到错误原因和位置。 在此分享给大家。 下载地址 https://pan.baidu.com/s/1szRRWf9xom 阅读全文
posted @ 2024-10-23 11:29 禁卫军 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 一、读一个图片到数据库 var inimage1:TImage; TPStream:TMemoryStream; inimage1 := TImage.Create(nil);//读取图片 TPStream := TMemoryStream.Create; Image1.Picture.SaveTo 阅读全文
posted @ 2024-09-27 19:28 禁卫军 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 好多开源的项目要用,但是没有Lazarus的头文件。在win下只能用VC自己写一个接口动态库。在Linux环境下怎么写这些接口库,下面是一个简单的方法: 一、用VC编译好源程序,并用Lazarus成功调用。二、新建一个cpp1、引用等按VC进行编写2、dll中的extern "C" __declsp 阅读全文
posted @ 2024-09-23 11:31 禁卫军 阅读(11) 评论(0) 推荐(0) 编辑
摘要: __try{BYTE* pch ;pch = ( BYTE* )00001234 ; //给予一个非法地址*pch = 6 ; //对非法地址赋值,会造成Access Violation 异常}__except( EXCEPTION_EXECUTE_HANDLER ){AfxMessageBox( 阅读全文
posted @ 2024-09-05 21:24 禁卫军 阅读(7) 评论(0) 推荐(0) 编辑
摘要: Lazarus在Loongxin下使用到SSL出错,显示could not load ssl library 查看lib中有libssl libcrypto两个库 用strace跟踪运行发现要的版本是1.0.2的,系统上是1.1.1版本,所以找不到库。 解决方法 1、下载源https://www.o 阅读全文
posted @ 2024-08-17 23:13 禁卫军 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 一、毫秒级 Linux 平台示例(毫秒)program HighPrecisionTimer; {$mode objfpc}{$H+} uses BaseUnix, SysUtils,Linux; var StartTime, EndTime: TTimeSpec; Elapsed: Double; 阅读全文
posted @ 2024-08-16 20:18 禁卫军 阅读(29) 评论(0) 推荐(0) 编辑
摘要: Lazarus在Loongarch的loongxin mate系统不能使用系统的打开、保存等对话框问题。 运行OpenDialog1.Execute后出现 浮点数例外 错误,程序自动退出。 根据 秋.风 在在龙芯loongxin mate系统lazarus和编译的应用打开文件对话框出现卡死的临时处理 阅读全文
posted @ 2024-08-10 20:14 禁卫军 阅读(17) 评论(1) 推荐(0) 编辑
摘要: DelphiXE12源代码支持多行字符串字面量,方便在应用程序源代码中嵌入SQL、HTML、JSON、XML等多行文本。 Lazarus目前是不支持的。但可以实现类似功能 temp:=String.Join(sLineBreak, [ 'SELECT *', 'FROM Customers', 'W 阅读全文
posted @ 2024-08-09 11:24 禁卫军 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 1、在dll工程中加类和接口 type IMyClass = interface ['{A1B2C3D4-E5F6-4789-ABCD-1234567890AB}'] // 接口 ID function Foo(inInt: Integer):Integer; stdcall; end; TMyCl 阅读全文
posted @ 2024-08-02 11:51 禁卫军 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 使用IPC收发消息可以在Windows和Linux下通用。其它系统没测试。 1、在system选项卡中选择TSimpleIPCServer和TSimpleIPCClient加到窗口中 SimpleIPCClient1: TSimpleIPCClient; SimpleIPCServer1: TSim 阅读全文
posted @ 2024-07-23 18:35 禁卫军 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 一、下载Onnxruntime GitHub - microsoft/onnxruntime: ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator 注意win7运行时会出错。 可 阅读全文
posted @ 2024-06-23 10:51 禁卫军 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 一、下载ffmpeg-delphi-pascal-headers 下载地址Headers | FFVCL – Delphi FFmpeg VCL Components(Video Encoder and Video Player) 下载 Releases · BtbN/FFmpeg-Builds · 阅读全文
posted @ 2024-05-16 21:07 禁卫军 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 目前Lazarus只能支持到opencv2.4.13的直接调用。要调用高版本的Opencv只能用其它语言生成dll等间接调用。经过对Opencv和C++数据的研究。可以使用Lazarus直接调用高版本的Opencv了。 以下是调用Opencv4.70的简单例子。 一、定义类型和函数 {$IfDef 阅读全文
posted @ 2024-05-06 20:47 禁卫军 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 泛型类型数组type generic TArray<T> = array of T; 调用var IntArray: specialize TArray<Integer>; StrArray: specialize TArray<string>;begin SetLength(IntArray, 3 阅读全文
posted @ 2024-05-06 20:13 禁卫军 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 问题:在VC中定义了一个函数 extern "C" __declspec(dllexport) int test(const char* filename) filename中可能有中文。 Lazarus调用test传英文没问题,传中文出错。 1、在VC项目设置-高级中 选择“使用 Unicode 阅读全文
posted @ 2024-03-19 20:24 禁卫军 阅读(107) 评论(0) 推荐(0) 编辑
摘要: YoloV4可以用opencv4.0以上加载和使用。但是Lazarus只能支持到opencv2.4.13。所以不能直接使用yolov4,后来只好用VC写了一个dll,调用Opencv4.81再调用YoloV4。 在Lazarus下调用这个dll就可以用yolov4了,方法如下 一、声明dll库 // 阅读全文
posted @ 2024-03-15 22:36 禁卫军 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 一、在要回调的单元加一个回调类 type TMyCallback =procedure(X, Y: Integer;...其它参数) of object; 二、在单元 TMyClass=class()中加下面的回调过程变量 public FMyCallback: TMyCallback; 三、在要使 阅读全文
posted @ 2024-03-07 20:47 禁卫军 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 在Opengl中显示字符多用Glut单元中的glutBitmapCharacter进行显示。这样有两个问题。 1、是不能显示汉字。 2、是要glut32.dll库支持。 通过研究可以不用Glut,只用其它的GL库就能实现中文显示 1、加入库 uses OpenGLContext, GL,glu; 2 阅读全文
posted @ 2024-03-04 11:52 禁卫军 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 使用Lazarus调用Opencl对GPU进行操作运算。 1、硬件:CPU i5-7400,显卡1050。硬件比较老了。 2、运算内容:1024*1024个浮点数求平方。都运算10000次。 3、对比:GPU从加载硬件-编译C原核程序到运算完成1.325s,CPU单线程运算完成24.49s。如何按C 阅读全文
posted @ 2024-02-07 23:10 禁卫军 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 一、在目标机上安装gdbserver服务。 运行 gdbserver :2345 你要调试的程序 二、编译gdb(重点) 1、下载gdb源,下载msys2-x86_64-20220118.exe。 2、安装msys2 3、到Msys2安装目录下运行mingw64.exe 4、安装以下包 pacman 阅读全文
posted @ 2024-01-31 21:54 禁卫军 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1、准备工作。从Lazarus安装目录中找到pcap.pp。加到工程中,并引用它。win下要安装WinPcap。 2、写一个读取数据的回调 function htons(hostshort: word): word;begin Result := ((hostshort and $00FF) shl 阅读全文
posted @ 2024-01-27 11:48 禁卫军 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1、打开LCLType单元。 2、把TUTF8Char = String[7];改成TUTF8Char = String; OK,重新编译就可以输入多个字的词组了。就这么简单。 阅读全文
posted @ 2024-01-12 11:21 禁卫军 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 一、引入资源文件。LoadFromLazarusResource的用法1、生成lrs文件C:\lazarus\tools>lazres.exe gif.lrs C:\inetpub\wwwroot\working返回..... ResourceName='working' Type='GIF'2、加 阅读全文
posted @ 2024-01-11 20:55 禁卫军 阅读(77) 评论(0) 推荐(0) 编辑
摘要: Lazarus编译Loongarch64应用程序运行时报错,没找到目录或文件。主要是加载器的问题。 1、在Loongarch64系统中找到ld-xxx.so.x文件。多在/lib64目录下。如ld.so.1或是ld-linux-loongarch-lp64d.so.1等 2、在lazarus下的项目 阅读全文
posted @ 2024-01-06 12:48 禁卫军 阅读(291) 评论(2) 推荐(0) 编辑
摘要: 1、在{$mode objfpc}{$H+} 后加{$ModeSwitch ANONYMOUSFUNCTIONS} 2、例子 如 Application.QueueAsyncCall(procedure (Data:PtrInt) var i:Integer; begin i:=1;i:=2 end 阅读全文
posted @ 2024-01-04 09:50 禁卫军 阅读(42) 评论(0) 推荐(0) 编辑
摘要: {$IFDEF LINUX} ,BaseUnix {$ENDIF } var pid:TPid; //在主程序中加入 begin {$IFDEF LINUX} pid:=FpFork; if pid=0 then begin {$ENDIF }//后台运行的部分 {$IFDEF LINUX} end 阅读全文
posted @ 2024-01-03 11:27 禁卫军 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 用Lazarus自带的libQt5Pas.so无法通过编译。主要是在高于2.2.0版本的Lazarus时要用到libQt5Pas.so库要大于1.2.10才能编译。 方法一:到Release V1.2.15 · libqt5pas (github.com)下载对应操作系统与CPU的库文件。 方法二: 阅读全文
posted @ 2023-12-27 20:09 禁卫军 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 以Linux _X86_64为例 一、删除LazarusFPC\cross\lib\x86_64-linux下的所有文件。 二、在Lazarus项目选项-编译器-配置和目标-选择Linux和X86-64。 三、编译项目。 1、会出现cannot find -lpthread: No such fil 阅读全文
posted @ 2023-12-21 21:29 禁卫军 阅读(161) 评论(3) 推荐(0) 编辑
摘要: ZJson:TJSONObject; arrJson:TJSONArray; subjson:TJSONObject; ZJson:=TJSONObject(GetJSON('.....Json字符串....')); //后面json变量的都不能用创建,否则会无法释放内存 //以前用了arrJson 阅读全文
posted @ 2023-12-21 11:09 禁卫军 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 1、在线程中改UI TThread.Synchronize(Nil,procedure begin Form1.Label12.Caption:='共'+IntToStr(zs)+'张图片,正在处理第'+IntToStr(i)+'张'; end); 2、在子程中改UI Application.Que 阅读全文
posted @ 2023-12-20 20:18 禁卫军 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 1、安装UniqueInstance组件(可下载包安装,也可以在线安装)2、在窗口中加TUniqueInstance控件。在system的选项卡下,一个红色1的控件3、设置TUniqueInstance的enabled为真4、在UniqueInstance1OtherInstance事件中加处理程序 阅读全文
posted @ 2023-12-19 20:05 禁卫军 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 比如登录系统用的是Myname这个用户。而后又用su进入root用户后,如果没有退出root就运行所开发的程序,可能中文输入法无法调用。 可以写以下程序判断是否登录用户与当前运行用户是否一致。 type ptpasswd = ^tpasswd; cint=LongInt; tpasswd = rec 阅读全文
posted @ 2023-12-19 20:00 禁卫军 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 如果您的 Indy 应用程序中存在内存泄漏,那是因为您使用了 IdStack 或 IdThread 单元,或者依赖于它们的组件。这是设计使然,在 Delphi 中,通过向内存管理器注册泄漏来抑制泄漏报告。此功能不适用于 Free Pascal,但您可以删除故意的内存泄漏。在文件 IdCompiler 阅读全文
posted @ 2023-12-19 19:50 禁卫军 阅读(67) 评论(0) 推荐(0) 编辑