自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 GMSSL学习笔记

GmSSL是由北京大学自主开发的国产商用密码开源库,实现了大部分常用的国密算法(SM2、SM3、SM4等)以及TLCP协议,使用方法类似openssl。GmSSL是一个轻量级软件,使用起来也比openssl方便一些。

2024-04-07 17:13:40 307

原创 xshell官方免费版下载地址

家庭/学校免费 - NetSarang Website (xshell.com)

2024-03-07 09:51:18 244

原创 python算法训练之有限域上的多项式运算

python计算所有 GF(2)上 次数小于等于8 的 不可约多项式

2024-02-02 14:47:04 724

原创 python ctypes.pointer和ctypes.POINTER的区别

ctypes.pointer将一个已实例化的对象转换为指针,该对象的类型必须是形如ctypes内部类型,例如ctypes.c_int或ctypes.Structure。ctypes.POINTER将一个ctypes内部类型转换为对应的指针类型,不会创建该类型的对象。ctypes.POINTER通常在设置argtypes时用于生成所需类型。ctypes.pointer通常在调用时用于生成所需指针。ctypes.pointer(a)相当于C的&a。ctypes.POINTER(A)相当于C的A*。

2024-01-26 15:59:26 338

原创 linux编译libiconv源码案例

麒麟64位服务器版。

2024-01-24 15:41:33 487

原创 git克隆失败提示RPC failed的解决方法

关键字:git, error, RPC failed, curl 18 transfer closed with outstanding read data remaininggit pull也会遇到同样的错误,解决方法相同。

2024-01-05 13:43:37 1471

原创 GreatDB源码分析之表空间加密

GreatDB(或mysql)服务端支持对表内数据进行加密存储,称之为表空间(table space)加密。

2023-12-28 15:58:47 845

原创 redis-plus-plus访问REDIS集群

初始化需要输入任意一个结点的IP和端口,如果设置了密码,还需要密码的明文并使用ConnectionOptions类。开源库:redis-plus-plus。初始化完成后可以直接进行读/写操作。接口类:RedisCluster。

2023-11-02 15:52:28 465

原创 无openssl编译libwebsockets源码(关闭SSL)

编译源码,生成不依赖openssl的libwebsockets动态库(dll)

2023-07-11 16:02:21 1476

原创 C++罕见的纯虚函数调用异常(_purecall abort)

1、析构函数的执行过程中,虚函数表会发生变化,使得虚函数的表现与一般情况不同。2、子类的析构函数返回后,所有子类实现的虚函数在虚函数表中的指针都会替换为父类的对应方法(相当于子类重写父类方法的过程反过来),然后才会执行父类的析构函数。3、如果在析构函数中直接调用纯虚函数,则会引发链接错误,这算是编译器帮我们处理了最简单的情况。但间接调用纯虚函数的复杂情况编译器无法识别。4、父类的构造函数也有类似的现象,在执行期间,虚函数表中的指针都是父类的,纯虚函数则是_purecall。

2023-07-06 15:14:02 627

原创 C++特殊情况下的父/子类内存布局及BUG踩坑

本文讨论的是父类没有虚函数表的特殊情况。

2023-06-26 17:11:54 838

原创 Linux无法链接到同目录下so的解决方法

运行可执行文件报错,但libdll1.so就在当前目录下。

2023-06-21 11:42:48 323

原创 python调用C接口dll(函数名是变量)

win11 x86-64,python3调用C接口dll,要求函数名可变(参数输入)。

2023-05-28 21:52:29 210

原创 VS2022编译libiconv-1.17

使用VS2022编译libiconv-1.17。需要对源码手动进行配置。

2023-05-09 16:13:06 1804

原创 cmake make不打印详细信息的解决方法

cmake生成Makefile,make时不打印详细信息。Makefile中有MAKESILENT变量。

2023-03-29 14:39:19 636

原创 ubuntu添加系统服务实现开机root权限运行

添加系统服务,然后通过systemctl控制

2023-03-06 16:55:22 2130

原创 Tk.event_generate失效的解决方法(python tkinter)

使用event_generate发送自定义消息,无报错,但Tk窗体无法接收到消息。

2023-02-22 17:06:23 351

原创 python3获取没有符号链接的绝对路径

python3获取没有符号链接的绝对路径os.path.realpath

2022-06-09 17:28:05 160

原创 python装饰器实例@FixWd

本文实现了一个简单的装饰器,可用于固定工作目录。不说废话直接上代码import osimport subprocessimport sysdef FixWd(f):#固定工作目录的装饰器 def ret(*args, **kwargs): strPwd = os.getcwd() r=f(*args, **kwargs) os.chdir(strPwd) return r return ret@FixWd

2022-04-28 20:13:14 689

原创 双网卡电脑的Internet连接共享

需求概述有一台双网卡的电脑A(为简便起见,假设是2个以太网口。多于2个网卡,以及有无线网卡的情况下,解决方案雷同),2个网卡分别称为eth0和eth1。eth0可以访问Internet,eth1连接(网线直连)另一台电脑B(笔者的实际案例是一个嵌入式设备。还是为了叙述简便,假设是一个普通电脑,并且电脑B除了一个以太网口外没有其它上网手段)。目标:使2台电脑都能访问Internet。操作系统:ubuntu20。windows下的操作可参考:https://jingyan.baidu.com/a

2022-01-04 20:34:20 11699

原创 ubuntu20关闭自动更新

ubuntu20关闭自动更新的方法

2022-01-02 13:15:11 2537 1

原创 ubuntu20无法安装python-dev的解决方法

现象使用apt安装python-dev时报错,更换软件源无法解决。首先确定python版本(大版本号,我的是3),然后使用python3-dev代替python-dev。仍然报错:(关键字:Depends,Unable to correct problems, you have held broken packages)问题原因依赖软件包的版本不匹配。也有可能是依赖软件包的依赖软件包的问题。一般不做手动排查。解决方法安装aptitudesudo apt instal

2021-12-28 11:41:35 8482 1

原创 python踩坑记录

个人踩坑记录合集解决方法:卸载python3.9,换成python3.7,重新设置环境变量,(使用pip)重新安装dnspython。效果:可正常使用dns.asyncresolver.Resolver。原因:不明...

2021-09-06 10:57:33 294

原创 CHIA源代码分析之chiavdf

概述chiavdf是chia.net开发的一个开源软件库,用于chia区块链(XCH币)。chiavdf是chia区块链的关键模块之一,功能是提供VDF接口函数,进而限制区块产生的速度。本文分析了chiavdf的软件需求和主要代码,翻译了部分英文文献,并总结了文献中的概念与代码元素(函数、变量等)的对应关系。本文使用1.0.2版本的代码,代码来源是github:https://github.com/Chia-Network/chiavdf本文首发于csdn.net,转载请注明。本文的原创

2021-08-27 22:28:20 6059

原创 以太坊DAPP开发之HDWalletProvider

HDWalletProvider类封装在truffle-hdwallet-provider软件包中,提供类似以太坊钱包的功能,可以管理密钥。本文介绍两种基本用法,均使用js编程,在truffle的配置文件中调用。1、使用助记词。2、使用密钥。代码放一起了∩ˍ∩var HDWalletProvider = require("truffle-hdwallet-provider");var g_mnemonic = "one two three four five six seven eight

2021-08-15 12:46:07 11090 1

原创 sqlite高级语法实例:子查询+UNION+JOIN实现较复杂的IF逻辑

需求概述数据库结构表Features表Features的列: FeatureType | Removable | RemoveTech | 略表Features_XP2表Features_XP2的列: FeatureType | volcano | 略Features_XP2有可能不存在,Features一定存在。数据关注FeatureType值为'FEATURE_FLOODPLAINS','FEATURE_OASIS','FEATURE_REEF','FEATURE_GEO

2021-05-12 14:11:07 487 1

原创 安装Unity Hub卡在最后一步 的解决方法

现象:没有进度条,也没有下一步按钮解决方法:在托盘区找unity图标,双击点开,点“安装”,之后选模块。unity这个设计真是挺坑的参考资料:https://tieba.baidu.com/p/6222319963?traceid=...

2020-03-04 20:51:39 16840 7

原创 [实验]关闭TCP监听套接字对已建立连接的影响

先说结果吧,结果是无影响,已建立的连接依然可以正常使用。实验环境windows10,vs2010实验过程服务器采用VC编程,客户端使用TCP调试软件。服务器工作流程1、创建监听套接字socket1,绑定端口17000。2、使用listen函数监听socket1。3、使用accept函数从socket1接受连接,得到一个新的套接字socket2。4、关闭socke...

2018-10-03 10:46:12 2388

原创 openssl生成证书及简化身份验证

概述本文将给出数个用于生成SSL证书的bat脚本,并探讨当不需要身份验证时可行的简化方案。本文面向openssl初学者,但需要一定的密码学基础知识。具体包括 对称加密、非对称加密、密钥、公钥、数字证书,以上概念只需了解即可。本文假设你已经下载安装了openssl,文章内容将不包含安装openssl。打开CMD输入openssl来验证你的openssl是否可以正常使用。开发环境...

2018-09-01 20:04:55 2058

原创 C++无法使用vector::data的原因和解决方法

vector::data是C++11新加入的方法,所以如果你的编译器说vector没有data成员,那肯定是因为编译器不支持C++11没跑儿了~解决方法嘛~就是升级编译器,或者索性换了。如果换用其它函数代替的话,可以用(&*v.begin())或者(&v[0])都行,不过需要先判断v.size()是否大于零。这里v是一个vector类型的对象。微软从VC10开始支持vect

2017-09-10 14:51:32 7113

原创 CFileDialog占用文件夹的解决方法

问题描述使用CFileDialog选择文件后发现有文件夹莫名被占用,不能删除或重命名。笔者的开发环境是Visual Studio 2005,MFC工程。出现原因CFileDialog并没有直接占用文件夹,但他会改变工作目录到所选文件所在的文件夹,导致当前进程占用该文件夹,即使销毁CFileDialog对象也不能恢复。解决方法方法一使用OFN_NOCHAN

2016-12-04 11:39:44 1692

原创 使用mfc扩展dll实现插件效果

本文要解决的问题是,使用mfc设计具有对话框界面的程序,并且支持插件(数量不限),并且每个插件都可以有自己的界面,并且主程序和插件之间要能(通过接口)双向传递数据。

2016-10-23 18:25:54 5055 2

原创 .NET使用System.Runtime.InteropServices.Marshal实现委托与函数指针互转

命名空间: System.Runtime.InteropServices函数:Marshal.GetDelegateForFunctionPointer函数:Marshal.GetFunctionPointerForDelegate

2015-10-28 10:04:50 7296

原创 std::list<>::remove_if的使用

摘要std::list::remove_if方法的作用是删除一个链表中所有满足条件的元素,其参数是一个Predicate。然而c++中的Predicate并不是很容易理解,事实上笔者至今仍未能完全掌握它。本文将介绍2种remove_if的简单用法,无需理解Predicate也能使用此功能。开发环境visual studio 2010,C++方法一:传入回调函数回调函数的原形为:

2015-10-21 11:00:57 10423

原创 valgrind报告5种内存泄露的研究

摘要:valgrind是linux下用于调试程序和查找内存泄露的常用工具。valgrind会报告5种内存泄露,"definitely lost", "indirectly lost", "possibly lost", "still reachable", 和 "suppressed"。笔者于工作闲暇之余对这5种内存泄露的出现原因及区别进行了研究,撰此文以记之。测试环境:Linu...

2015-05-05 20:15:42 22280

原创 CMutex使用时的注意事项,以及CMutex::Unlock何时会返回0

摘要:同一个CMutex对象不允许在两个线程中分别调用Lock和Unlock,否则Unlock会失败并返回0。一、问题描述笔者最近在开发过程中遇到了CMutex::Unlock返回0的情况,通过MSDN得知这表示Unlock失败。但MSDN并没有告诉我为什么会失败以及如何处理,查百度谷歌亦无果,于是决定动手探索。这是MSDN上Unlock对返回值的解释Ret

2015-03-09 15:37:46 3195

翻译 关于readdir返回值中struct dirent.d_type的取值问题

原网页链接http://www.gnu.org/software/libc/manual/html_node/Directory-Entries.html原文及翻译混在一起写了unsigned char d_type    This is the type of the file, possibly unknown. The following constants ar

2015-01-15 17:34:43 24019

原创 c++中使用vector可能会产生的内存管理问题

问题描述如果一个类或结构中有动态分配的指针,并且在程序中使用了这个类或结构的vector,容易出现内存相关的错误(如访问越界、重复释放)。问题分析产生这个问题的原因是vector的一些方法在执行时使用了目标类的拷贝构造函数和运算符“=”,而这2个东西没有正确的实现(或根本没有实现,系统自动调用默认的函数。笔者今天就是这种情况)。解决方法就是实现拷贝构造函数和重载运算符“=”

2015-01-06 15:57:01 1175

原创 分享一个学习Linux源码的网站

不废话直接给网址:http://lxr.free-electrons.com/

2014-10-31 11:24:26 1586

原创 使用Firefox访问ftp并上传下载文件

本文将介绍如何使用火狐浏览器访问ftp服务器以及上传下载文件

2014-09-12 17:25:36 16249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除