- 博客(45)
- 问答 (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
1047
原创 bat脚本实现枚举本地磁盘,并从A-Z中找出一个可用磁盘映射
如题:假如本地计算机有A(软盘)、B(软盘)、C(物理硬盘)、D(光驱,未放光盘),四个盘,则能找出 A:E:、B:F:、C:G:、D:H:四种映射方法,依此类推。代码通过bat脚本实现。
2024-12-26 14:00:56
392
原创 windows中C语言实现utf8和gbk互转
这里需要注意的是,我偷懒给了足够大的buff,MAX_MULTI_PATH ,于工程来讲够用了,如果做成动态另作考虑。
2024-12-13 18:21:32
141
原创 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
1387
1
原创 做敏捷教练的日子
严格的对结果和目标负责,摒弃以往的计划驱动观念,深刻了解敏捷的价值和意义。它是一种更快、更好、更频繁的交付价值,更灵活适应变化,不断检视调整改进的能力。每个人都要时刻要以目标为导向,在过程中不断调整和适应,为最终结果服务和负责。
2024-07-30 11:50:04
452
原创 如何达成某项成就?
我认为要达成一项成就,受三个方面的因素影响:想法、执行力、韧性。它们三个分别代表了:想、做和坚持。三者相互制约,也能相互促进。一件事情做成,先要有想法,这是这件事情的开端。想法不是空想,是有依据的,受个人的知识体系、见识的影响,对于这件事情有不同的认识。敢想敢干,是一种决心和勇气。当今可能是躺平的社会,可躺平其实只是在人云亦云而已,是一种半退缩的表现。想法的建立要取决于人的欲望,人都是有欲望的。比如工作有人为了挣米,还有人想有更好的发展和以后,这都是欲望“作祟”。但这又是人之常情,有了这些想法,离做成事就不
2024-07-30 11:40:23
183
原创 linux c 特殊字符分割
以上代码实现了字符串根据特殊字符分割,并放入glib的数组(GPtrArray_autoptr是指针数组)里面。如果项目有引用其它的数据结构,也可以替换这个数组。
2024-07-25 15:02:10
348
原创 std::function相关用法
类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。这是比较官方的解释,最近在学习std::function的用法,看了一些示例后,记录一些自己的用法和理解。
2023-02-08 18:50:35
329
原创 工厂模式精简实现
记录一个工厂模式简单的实现,其中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
449
原创 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
533
原创 线程间通讯实例
简单实现了线程通讯,记录下,直接上代码。发送线程:#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
147
原创 ListView控件的重绘相关
最近在做关于C++ ListView控件重绘相关的工作,记录一下重要的重绘逻辑这个先解释下它在不同框架(也不能这么说),不同地方的不同MFC:就是CListContrl类,这个封装的很好,做起来相对简单COM:对应的用法都在CommCtrl里面 以 ListView_开头,下面说的主要是COM这个编程相关,不过原理都是一样的直接上代码 case WM_NOTIFY: if (reinterpret_cast<LPNMHDR>(lParam)->hwnd
2021-09-06 12:09:18
523
原创 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
993
原创 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
1014
原创 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
437
原创 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
402
原创 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
245
原创 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
621
原创 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
3418
原创 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
6892
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
2744
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
287
原创 MFC 文件操作
1.压缩HZIP hz = CreateZip("c:\\simple1.zip",0); ZipAdd(hz,"znsimple.bmp", "c:\\simple.bmp"); ZipAdd(hz,"znsimple.txt", "c:\\simple.txt"); CloseZip(hz);2.解压缩HZIP hz = OpenZip("c:\\stuff.zip",
2016-12-29 11:23:19
662
原创 MFC 实现FTP服务器上传下载
事先搭建FTP服务器,上传下载端口新建MFC基于对话框程序,添加上传下载按钮。上传按钮CInternetSession * pInternetSession = NULL; CFtpConnection* pFtpConnection = NULL; //建立连接 pInternetSession = new CInternetSession(AfxGetApp
2016-12-21 15:44:51
9332
原创 md5加密算法
.cpp文件#include "stdafx.h"#include "MD5Crypt.h"#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endif#define S11 7#define S12 12#define S13 17#define S1
2016-12-20 16:51:48
417
原创 MFC ado操作mdb数据库
1.新建基于对话框应用程序找到stdafx.h文件 在末尾加入#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")2.找到对话框app类初始化函数InitInstance()其中加入::CoInitialize(NULL);::CoUnin
2016-12-19 11:48:13
3509
原创 MFC copydata实现两个进程间信息传递。
1.新建Send基于对话框工程。添加按钮,标题改为“发送”。2.找到对话框头文件,定义结构体。typedef struct{ char Name[20]; UINT Age;}Student;3.新建Receive基于对话框工程。找到对话框头文件。定义同样的结构体typedef struct{ char Name[20]; UINT Age;}Student;4.双
2016-12-09 13:40:42
1098
原创 MFC 动态链接库的生成调用。
1.新建MFC DLL程序。2.在项目中添加.CPP文件 名字随意。 我的是txt在txt.cpp中写入extern "C" __declspec(dllexport) void button1(void){点击按钮要做的事。}3.右击txt.cpp点编译,编译成功就行。4.在自己的DLL项目Debug文件夹中找到TxtDll.lib和TxtDll.dll。复制粘贴到 新的对
2016-12-08 15:50:11
1260
原创 MFC 对话框 关于exe文件绝对路径的获取,截获。
1.获取exe文件的绝对路径TCHAR pszFileName[MAX_PATH]; GetModuleFileName(NULL,pszFileName,MAX_PATH); CString psFileName; psFileName=pszFileName;2.把*.exe去掉改成另外的格式名字。psFileName=psFileName.Left(psFileName.R
2016-12-07 17:13:37
487
原创 MFC对话框实现txt文件读写,及时间差判断
1.MFC对话框加两个按钮,一个写入,一个读取。双击写入按钮。 char* pszFileName="C:\\Users\\Administrator\\Desktop\\xierutxt\\Debug\\myfile.txt";//新建文件路径 CStdioFile myFile; CString str; //获取系统时间 CTime tm; tm=CTime::Get
2016-12-07 13:51:17
2045
原创 关于二维码。
官网各版本:http://www.qrcode.com/zh/about/version.html自己拓展版本。纠错类型自己选择更准确。int RS_BLOCK_TABLE[78][6] = { // L =1 // M =0 // Q =3 // H =2 // 1 {1, 26, 19,0,0,0}, {1, 26, 16,0,0,0}, {1
2016-12-03 11:02:02
351
原创 MFC 如何使用线程函数。
1.新建对话框程序(假如你的工程名叫Child),在public中定义线程函数static UINT Thread1(void *pArg);2.在.cpp中写线程函数(你希望它做什么,一般用作循环,你的对话框运行是主线程,它是子线程,两者互不干扰让程序更流畅)UINT CChildDlg::Thread1(void *pArg) { CChildDlg *dlg1=(CChildD
2016-12-03 10:58:58
1371
空空如也
VC下如何获取windows快速访问的列表
2021-08-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人