- 博客(49)
- 资源 (9)
- 收藏
- 关注
原创 log4cplus visual c++ 编译及调试小记
最近在调试一款SATA加密设备,发现设备有时加密出来的数据,再解密时与明文对不上,怀疑是通信问题。因此,急需要在测试工具中加入通信日志。由于对第三方日志库都不熟悉,所以随便选了个log4cplus软件集成到现有工具中。同时还要下载catch2, 在同时还要下载threadpool, 在下载完上述3个开源软件后,用Visual C++进行编译。进入到log4cplus/msvc14目录下,在log4cplus.sln上右键,使用visual studio 2019打开项目。
2024-01-02 17:07:41 985
原创 在主线程中等待AfxBeginThread启动线程退出
在windows MFC编程过程中,总有需要启动线程去处理任务的情况。MFC中常用的方法就是beginthread,CreateThread, AfxBeginThread等API. 其中AfxBeginThread这个API是属于MFC框架内的函数。beginthread属于C语言启动线程的函数。CreateThread属于windows API函数。既然选择了MFC框架,当然启动线程用AfxBeginThread最方便了。然而,线程启动后,如何优雅的退出,确是需要考虑的问题。
2023-11-27 14:43:44 559
原创 LCD英文字模库(16x8)模拟测试程序
字模,就是把文字符号转换为LCD能识别的像素点阵信息。电子发烧友可能都熟悉字模的用途。就是调用者通过向LCD模块发送字模数据,LCD根据字模数据在LCD面板上相应的像素描绘出图形或文字。现在,大部分的LCD都内置了字模库,只需告诉LCD模块想要显示的文字和坐标,LCD就会自动查询内置的字模库,然后就直接把内容显示出来。但是,外送字模给LCD模块去显示,也还是支持的。
2023-11-10 13:03:43 361
原创 win10 通过wmic命令行设置系统环境变量
而通过编程修改系统环境变量,需要调用注册表API或调用wmi API接口,都有些过于麻烦。此时,如果通过system函数,直接调用批处理文件,则只需要一行代码。批处理中,分别给出了创建环境变量,修改环境变量,删除环境变量的demo。可以根据需要调整批处理文件。在系统维护或编写程序过程中,经常需要对系统环境变量进行设置、修改、删除炒作。注:修改系统环境变量,需要有管理员权限。
2023-11-09 13:05:06 280
原创 lua 时间差功能概略
在进行程序设计过程中,经常需要对某些函数、某些程序片断从开始运行到运行结束所耗费的时间进行一些量化。这种量化实际上就是计算时间差。
2023-11-09 12:48:51 783
原创 go程序获取工作目录及可执行程序存放目录的方法-linux
通常就是指用户启动应用程序时,用户当时所在的文件夹的绝对路径。如:root用户登录到linux系统后,一顿cd(change directory)后, 到了/tmp文件夹下。此时,用户要启动某个应用程序,这个应用程序的工作目录就是/tmp。此时,在应用程序编码中,所有使用相对路径的地方,都是相对于工作目录而言的。如:要打开“./a.txt”, 实际上就是打开工作目录下的a.txt. 也就是/tmp/a.txt文件。
2023-11-07 10:12:33 757
原创 win10枚举所有证书服务提供者CSP和获取默认CSP
微软MSDN上提供的例子,现在在WIN10上还可以正常运行。但是微软貌似不推荐CSP其中的某些API继续使用。未来CNG(下一代加密技术)将成为主主流开发技术,希望开发者慢慢向CNG过度吧。
2023-08-26 22:35:54 140
原创 go cgo 字节数组切片转C指针的2种方法
go语言在使用 cgo 调用C语言编写的动态链接库是,许多API接口参数都是unsigned char *类型,此时就需要把go语言的[]byte类型转换为unsigned char *类型。
2023-08-15 13:37:06 303
原创 C++拷贝构造和移动构造函数小实验
自己些C++代码时,总是使用最简单的C++语法,一般不会用到拷贝构造和移动构造这些比较高级的语法。但是,在读别人的C++代码时,总是被弄得晕头转向。因此,也简单学习一下。正所谓知己知彼,百战不殆。
2023-07-27 16:58:44 38
原创 python使用O_DIRECT打开设备文件读写操作示例
最近在用python读写硬盘设备,需要用到无缓存模式,直接从硬盘中读取数据到脚本。需要用到O_DIRECT标志打开设备,并实现读写操作。
2023-07-14 16:51:49 299
原创 NSIS脚本制作windows软件安装包
本文是10年前做windows开发时,做安装包是留下的一点关于用NSIS打包安装程序的技术文档。虽然不全面,但是勉强够用。有兴趣的同学可以到下载全部脚本(共11个小例子),里面还有一个简单的ppt讲解。写的比较差,勉强可以参考。
2023-06-14 17:20:31 1012
原创 pyhon subprocess Popen多线程多路ping不同网址
利用python多线程,每个线程分别通过子进程(subprocess)的管道(pipe)机制,执行ping命令行,并返回命令行的执行结果。
2023-06-12 10:53:13 240
原创 java json.simple库简单测试
支持JSONObject支持JSONArray支持Map转JSONObject支持List转JSONArray支持String转JSON对象支持JSON String 解析。
2023-06-07 17:46:51 118
原创 lua脚本启动多个协程处理任务
lua语言本身并不支持像C语言一样的线程操作。因此,如果要让lua脚本同时干多个独立的任务,就要通过协程(coroutine)模拟线程操作。只不过,lua的协程并不是由操作系统负责调度,而是由程序编写者自己通过lua api显示调度。
2023-06-06 16:17:11 362
原创 Linux 下用 Eclipse 开发调试 C 程序
Eclipse 是 IBM 支持的,一个基于插件结构的集成编译器。最初只支持 JAVA,随着 CDT 插件的发布,其可以很方便编译和调试 c/c++项目。CDT 是完全用 Java 实现的开放源码项目(根据 Common Public License 特许的),它作为 Eclipse SDK 平台的一组插件。这些插件将 C/C++ 透视图添加到 Eclipse 工作台(Workbench)中,现在后者可以用许多视图和向导以及高级编辑和调试支持来支持 C/C++ 开发。
2023-05-29 16:57:40 1215
原创 python使用ctypes调用国密SDF库实现加解密
简单实现了python同过ctypes调用SDF库。主要实现一下功能,其他功能可自行扩展。1. 加载SDF库2. 打开设备3. 打开会话4. 导入临时密钥,获取临时密钥句柄5. SM1加密6. SM1解密7. 关闭会话8. 关闭设备
2023-05-26 12:50:49 375
原创 linux C语言GetModuleFileName(动态库获取自己的绝对路径)
由于linux系统应用程序加载动态库时,动态库(.so)文件可以放到系统的任何地方。而动态库内部并不知道自己所在的文件系统路径。如果需要获取动态库(.so)文件的系统绝对路径,需要采用一些方法。在windows操作系统中,有微软实现好了的GetModuleFileName系统API, 可以直接调用。在linux操作系统中,并没有实现好的任何系统API直接获取动态库(.so)文件的路径,需要自己动手实现。
2023-05-18 15:35:00 1081
原创 python mmap访问PCI设备内存或寄存器
假设有一个PCI卡,它的驱动通过mmap的方式将其bar空间映射到用户空间。此时,用户态程序就可以通过某些系统api直接操控这个PCI卡。
2023-05-10 13:06:09 486
原创 python各种数据类型转换
经常用到的python数据转换放到这里,便于以后查询。各种数据类型之间转换,包括hexstring, bytes, bytearray list tuple set string int等
2023-05-05 17:21:52 189
原创 java利用jna对国密SDF接口的封装类
前几天发了一个利用JNI封装国密接口的类,封装的接口不全,只提供了5个接口的封装(而且JNI使用起来太麻烦)。这里提供一个jna封装国密接口的类,封装了大约20多个接口,现在也发出来,希望对大家有用。
2023-04-24 15:35:57 661 2
通过NSIS制作Windows安装包(附带11个小例子)
2023-05-29
lua md5 lfs luafilesystem
2023-04-14
编译好的lua alien模块,包括5.1版本和5.4版本
2023-02-24
LUA5.1编程 - 利用alien库实现国密算法库SDF的调用
2022-11-09
deelx 正则表达式中文教程
2012-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人