自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 问答 (1)
  • 收藏
  • 关注

原创 MFC 用对话框VMR_Capture类实现图像采集,抓拍

1.新建一个对话框取名摄像头2.在其中加入一个picture control控件,一个comb控件,一个button按钮。做成下图给picture control控件设置控制变量命名为my_device        comb控件设置控制变量命名为mylist。3.准备好VMR_Capture.h文件和VMR_Capture.cpp文件,分别加入到头文件和源文件中

2016-11-19 14:59:23 1058

原创 编译器优化和实例

编译器优化 C 代码时,通常从多个层面进行优化,以提高程序的执行效率、减小代码体积,或者降低能耗。

2025-05-30 16:03:03 733

原创 libevent的粘包笔记

粘包”现象是指,一次性被接收端读取了,从而造成接收方难以区分包与包的边界。

2025-05-28 15:59:10 331

原创 关于A*算法(在我草稿躺了5年了)

最近项目里要做一个守卫剑阁(雅典娜)的游戏玩法,但是项目过老,没有寻路算法,只有简单的方块走法。花费了两天时间对接A*,

2025-05-20 14:32:22 721 2

原创 openssl中aes算法的封装

是继国密之后,又封装了此版本的ctr模式,个人笔记,仅供参考。

2025-05-20 14:09:38 100

原创 Gmssl库的aes算法效率问题

但它并不是 OpenSSL 的完整克隆,而是有以下几个特点,正是这些导致了它。

2025-05-12 14:02:41 733

原创 总结一下最近的知识盲区(个人笔记)

如果原始数据长度是n字节base64长度 = ((n + 2) / 3) * 4(注意这里是整除以后再乘以4)①粘包问题是TCP本身导致的因为 TCP 是流协议,只保证数据可靠到达、顺序正确,但不保证一次recv()就读到完整一包。所以B机根本不知道"现在这一坨数据是不是A机发的一个完整包" —— 只能靠自己设计协议来区分!

2025-05-06 11:16:07 710

原创 Gmssl实战

最近项目要引入gm算法,实现aes和sm4数据加密,研究了一下两个系统的安装和测试用例。这里说下我要用的gm库的格式,为静态库,mt,所以需要修改cmakelists.txt。gmssl_use.c 我用packet_id做iv的生成条件。windows, 从github下载GmSSL库(打开x86cmd.bat,解压GmSSL到目录。安装完后,我们可以在目录中找到gmssl.lib。linux,从github下载GmSSL库(),以下为安装方法。),以下为安装方法。依次执行以下命令安装。

2025-04-21 18:06:09 539

原创 c语言jni实战,双系统

①安装jdk,去java官网下载,这里使用版本jdk-23_windows-x64_bin.exe。新建系统变量 JAVA_HOME:C:\Program Files\Java\jdk-23。#centos ,我使用的centos,其他系统安装方式不同。③在环境变量的PATH中新增 %JAVA_HOME%\bin。1.首次编写jni接口代码,需要安装java。2.配置jni环境变量(linux接第一步)④重启计算机或visual studio。是你jdk的安装路径,默认是这个。②安装完毕后设置环境变量。

2025-04-14 11:24:17 476

原创 linux内核模块编程

设计一个内核模块,并在此内核模块中创建一个内核链表以及两个内核线程。•线程1需要遍历进程链表并将各个进程的pid、进程名加入到内核链表中。•线程2中需不断从内核链表中取出节点并打印该节点的元素。在卸载模块时停止内核线程并释放资源。Makefile。

2025-04-14 10:39:08 537

原创 libevent的网络限速设置

【代码】libevent的网络限速设置。

2025-04-10 14:43:37 117

原创 linux系统kernel回退脚本

【代码】linux系统kernal回退脚本。

2025-04-08 17:43:57 75

原创 bat脚本实现枚举本地磁盘,并从A-Z中找出一个可用磁盘映射

如题:假如本地计算机有A(软盘)、B(软盘)、C(物理硬盘)、D(光驱,未放光盘),四个盘,则能找出 A:E:、B:F:、C:G:、D:H:四种映射方法,依此类推。代码通过bat脚本实现。

2024-12-26 14:00:56 412

原创 Windows下C语言通过部分路径,模糊搜索对应的程序

【代码】Windows下C语言通过部分路径,模糊搜索对应的程序。

2024-12-13 18:35:35 486

原创 windows中C语言实现utf8和gbk互转

这里需要注意的是,我偷懒给了足够大的buff,MAX_MULTI_PATH ,于工程来讲够用了,如果做成动态另作考虑。

2024-12-13 18:21:32 164

原创 linux c转windows c要做的事情。

检查源代码是否使用了Linux特有的API或库。文件系统相关Linux下面,文件换行是"\n",而windows下面是"\r\n"。Linux下面,目录分隔符是"/",而windows下面是"\"。Linux中可根据stat的st_mode判断文件类型,有S_ISREG、S_ISDIR等宏。

2024-08-15 18:40:05 1436 1

原创 做敏捷教练的日子

严格的对结果和目标负责,摒弃以往的计划驱动观念,深刻了解敏捷的价值和意义。它是一种更快、更好、更频繁的交付价值,更灵活适应变化,不断检视调整改进的能力。每个人都要时刻要以目标为导向,在过程中不断调整和适应,为最终结果服务和负责。

2024-07-30 11:50:04 465

原创 如何达成某项成就?

我认为要达成一项成就,受三个方面的因素影响:想法、执行力、韧性。它们三个分别代表了:想、做和坚持。三者相互制约,也能相互促进。一件事情做成,先要有想法,这是这件事情的开端。想法不是空想,是有依据的,受个人的知识体系、见识的影响,对于这件事情有不同的认识。敢想敢干,是一种决心和勇气。当今可能是躺平的社会,可躺平其实只是在人云亦云而已,是一种半退缩的表现。想法的建立要取决于人的欲望,人都是有欲望的。比如工作有人为了挣米,还有人想有更好的发展和以后,这都是欲望“作祟”。但这又是人之常情,有了这些想法,离做成事就不

2024-07-30 11:40:23 203

原创 linux c文件相关操作

以上内容包含了glib 的数据结构、md5的计算方式,可自行替换。扫描文件或文件夹的元数据,放入数组结构。

2024-07-30 10:41:23 137

原创 linux c 自己实现ini格式的reader

代码中使用了glib库作为数据结构,如果使用其他的,请自行替换。

2024-07-25 15:20:50 425 2

原创 linux c 子路径剔除

将一个路径集传入,剔除子路径。

2024-07-25 15:11:37 265

原创 linux c 特殊字符分割

以上代码实现了字符串根据特殊字符分割,并放入glib的数组(GPtrArray_autoptr是指针数组)里面。如果项目有引用其它的数据结构,也可以替换这个数组。

2024-07-25 15:02:10 367

原创 16位MD5转32位字符串

【代码】16位MD5转32位字符串。

2024-07-25 14:55:49 229

原创 linux c 获取当前程序的运行路径

获取当前程序的运行路径。

2024-07-25 14:51:57 282

原创 C++11-17特性自用

以下我想实现一个等级阶段的结构适配。

2023-07-17 15:11:05 195

原创 std::function相关用法

类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。这是比较官方的解释,最近在学习std::function的用法,看了一些示例后,记录一些自己的用法和理解。

2023-02-08 18:50:35 342

原创 工厂模式精简实现

记录一个工厂模式简单的实现,其中COrder是最基类。#pragma oncestruct IFactory{ virtual COrder* CreateOrder() = 0;};template<typename T>class CFactoryOrder :public IFactory{public: static IFactory* GetInstance() { static CFactoryOrder FactoryOrder; retu..

2022-05-05 21:13:44 456

原创 Bitmap的遍历

最近做需求通过win32sdk编程从系统拿Icon图,发现有些程序是没有256标准的图,但是系统会给出其他规格的图,比如128/48/32,但是整体是一个256*256的白图,只不过有效图在左上角。大概是下图黑框这样,我需要区分出这个图是不是这样的,所以对Bitmap做了256规格的遍历,也很形象的让人理解图的像素分布这里记录Bitmap像素的遍历方法#include <GdiPlus.h>#define EXTRALARGEICON_ITEM_WIDTH 256bool

2021-12-17 20:11:59 548

原创 线程间通讯实例

简单实现了线程通讯,记录下,直接上代码。发送线程:#define MY_SHELLMENU_MSG WM_USER+200int iCmd=0,iMinID=0;PostThreadMessage(nThreadID, MY_SHELLMENU_MSG, (WPARAM)iCmd, (LPARAM)iMinID);1.上面的线程id需要自己获取,你要发给哪个线程就是了。2.消息是自定义的3.icmd和iMinID可以是任意类型接收线程:while (true)

2021-09-28 21:26:40 153

原创 ListView控件的重绘相关

最近在做关于C++ ListView控件重绘相关的工作,记录一下重要的重绘逻辑这个先解释下它在不同框架(也不能这么说),不同地方的不同MFC:就是CListContrl类,这个封装的很好,做起来相对简单COM:对应的用法都在CommCtrl里面 以 ListView_开头,下面说的主要是COM这个编程相关,不过原理都是一样的直接上代码 case WM_NOTIFY: if (reinterpret_cast<LPNMHDR>(lParam)->hwnd

2021-09-06 12:09:18 539

原创 VC++ 关于VC6.0编译环境的数据断点调试

由于VC6.0这个编译环境比较老了,但是有好多老项目是用的,而且vc6转高版本,05,08,10,会有多多少少大大小小的问题。比如VC6.0是可以这样写的#define MAX_INDEX_NUM 10 VOID 优快云::Function(){ for(int i=0;i<MAX_INDEX_NUM;i++) { //do something } for(i=0;i<MAX_INDEX_NUM;i++) {

2021-03-29 20:59:20 1008

原创 VC++ 使用StackWalker类打印当前运行堆栈信息

意义:作用在程序log模块或找一些模糊不清的bug,可以精确定位堆栈的运行。之前一直找这个找不到,从git上找到了StackWalker类分享。StackWalker.cpp#include "StackWalker.h"#include <stdio.h>#include <stdlib.h>#include <tchar.h>#include <windows.h>#pragma comment(lib, "version....

2021-03-25 13:01:04 1039

原创 ubuntu 16.04 配置java环境变量

1. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html根据系统环境选择下载JavaSE   我这里是 linux x64  tar2.解压     解压后  mv  jdk1.8.0_144  /opt/Java/jdk1.8.0_1443.   vi

2017-10-09 14:16:19 446

原创 python pandas a+

import pandas as pdimport numpy as np#print data.__len__()data=pd.read_csv('2.csv',header=None)data1=data.valuesprint np.shape(data1)[0] #row_countprint type(data1) #typeadd_row=['a'

2017-09-11 14:42:47 407

原创 python mysql

db=mysql.connect("localhost", user, pwd, database) cursor=db.cursor() try: cursor.execute(sql_str) db.commit() db.close() return True except: return

2017-09-08 17:03:07 250

原创 python pandas

import pandas as pddata=pd.read_csv(csv_path,header=None)print data.values #print currentdata1=data.valuesdata1[1,6]='aaa'print data1 #print againpd.DataFrame(data1).to_csv(saveto_csv_path,head

2017-09-07 09:52:41 684

原创 pugixml使用

头文件pugixml.hpp链接库pugixml pugi::xml_document doc; /*if(!doc.load_buffer("",0)) pugi::xml_document doc; if (!doc.load_file(“文件路径”, pugi::parse_default, pugi::encoding_utf8))//加载xml文件,

2017-08-09 17:31:36 3430

原创 libxls库的使用

头文件xls.h链接库xlsreader xlsWorkBook *pWb=NULL;//文件 xlsWorkSheet *pWs; //Sheet xlsRow *row_current;//提取行 int r,c; const char b[]="UTF-8";//编码方式 pWb = xls_open("文件路径",b);//这里如果打不开 ,在路径正确的同时,

2017-08-09 17:17:00 6916 1

原创 zbar+opencv配合实现条码识别

1.安装opencv2.安装zbar3.注意程序中链接库配置#include #include #include #include #include #include using namespace std;using namespace cv;using namespace zbar;int main(int argc, char **argv) { I

2017-08-02 16:08:39 2765 2

原创 vim 配置.vimrc

文件写入" This line should not be removed as it ensures that various options are" properly set to work with the Vim-related packages available in Debian." Uncomment the next line to make Vim more

2017-08-02 15:57:01 296

空空如也

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

TA关注的人

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