C++
宇文仲竹
这个作者很懒,什么都没留下…
展开
-
VS2017 编译生成 rpclib
起:mysql的数据读写需要一个程序作为数据服务器,基于C/S架构。方案1:若是自建tcp服务器那么得写一套对应的客户端api接口,数据表格数量少还好,数量多维护起来就麻烦了。方案2:采用RPC远程调用,好处不言而喻。终:windows下编译CMakeLists.txt项目可有先通过Cmake-gui生成 sln项目,再通过对应的vs编译器编译即可。3.vs2017编译,step3将会启动项目,配置下解决方案即可生成。2.使用Cmake-gui生成 sln项目。过程:1.下载rpc源码。原创 2022-09-07 16:07:20 · 490 阅读 · 0 评论 -
vs setup打包过程
vs setup 打包简要 步骤说明原创 2022-06-06 09:09:27 · 562 阅读 · 0 评论 -
c++ 正则 中文路径、文件名
始:数据录入需要进行数据个数进行校验,可以根据业务写校验规则,更机智的选择是应用正则表达式。这边的需求是校验文件路径和文件名称坑:如下代码在用正则表达式校验英文的文件路径和文件名时无问题bool leachDir(std::string linuxDirPath){ std::string dir= linuxDirPath; try { std::regex r("^/([\\w\\s]+/?)+$"); bool bValid = std::regex_match(dir,原创 2022-03-29 10:48:07 · 1621 阅读 · 0 评论 -
template 类模板 类继承
始:在接触qt界面开发时,需要重新按钮的mousePressEvent事件,且用到的每个qt控件都用到相同的实现,为了避免对每个控件都重写一遍,想到了用类模板来实现。类模板继承用法:参考http://c.biancheng.net/view/320.htmlhttp://c.biancheng.net/view/324.html过程:类模板的基础用法原理是将n个不同类型通过变量来实现class或类型的统一管理。为了实现初衷,那么只要创建一个类模板A并继承需要的qt控件类,在A中实现mouse原创 2022-01-07 12:35:31 · 1063 阅读 · 0 评论 -
c++ CopyData 使用结构体 - 跨进程
绪:跨进程数据交互方式可以使用多种方式,比如socket,本地文件,windows环境下自带的sendmessage之CopyData消息这里只设计CopyData数据的封装处理首先是简单的int数据发送:int i_value = 1; COPYDATASTRUCT data; data.dwData = 1000; data.cbData = sizeof(i_value); data.lpData = &i_value; ::Send.原创 2022-01-06 11:44:30 · 2727 阅读 · 0 评论 -
vs qt 无法打开包括文件: “QtCore/qconfig.h”
编译环境的不同导致的问题,定位到#ifdef QT_BOOTSTRAPPED#include <QtCore/qconfig-bootstrapped.h>#else#include <QtCore/qconfig.h>#include <QtCore/qtcore-config.h>#endif那么可以尝试定义宏QT_BOOTSTRAPPED方法1.在pch.h 或 stdafx.h#ifndef PCH_H#define PCH_...原创 2021-11-25 20:32:37 · 4015 阅读 · 2 评论 -
opencv 小记
1.获取视频流的第一帧并存储 为了显示视频文件的缩略图,将视频文件的第一帧取出来进行处理 eg:bool CuseMat::captureAvFirst(CString av, CString keepPath, int resizeW , int resizeH ){ cv::VideoCapture capture(av.GetString());//读取本地视频 if (capture.isOpened()) { cv::Mat frame; if (cap...原创 2021-08-11 16:18:42 · 247 阅读 · 0 评论 -
记 c++ 结构体 转字节流 网络传输v2
结构体转字节流方案改进,用于传输视频流#pragma once#include <atlstr.h>#include <map> #define MaxReqLen 15#define Cmd_rtsp 200 //"rtsp"#define Cmd_replay 201 //"replay"#define HkReqRtsp_cmds_Play "play"#define HkReqRtsp_cmds_Stop "stop"#define HkReqRt原创 2021-05-10 16:33:36 · 1299 阅读 · 0 评论 -
记 c++ 结构体 转字节流 网络传输v1
用于结构体转字节流的设计方案1struct Datas { enum { Data_null, Date_type, Data_guid, Data_name, Data_id, Type_end }; int getType() { return getTypeInt(datas[Date_type]); } void SetType(int type) { datas[Date_type] = getTypeString(type); } CStr原创 2021-05-10 16:25:34 · 675 阅读 · 0 评论 -
记 c++ 下载图片文件 奇数 中文路径 可用
头文件#pragma once#include <atlstr.h>#include <string>using namespace std;class CdownImg{public: CString downPic(CString strImgUrl);private: CString downPicOld(CString strImgUrl); CString CreateLocalPath(CString strImgUrl); string Ansi原创 2021-05-10 15:41:13 · 216 阅读 · 0 评论 -
海康yv12转码与异步流处理
//yv12 转码 到指定分辨率unsigned char * YV12RGBpixel(unsigned char * yv12, int W, int H, int newW, int newH){ cv::Mat dst(H, W, CV_8UC3);//8UC3表示8bit uchar 无符号类型,3通道值 cv::Mat src(H + H / 2, W, CV_8UC1, (uchar*)yv12); cv::cvtColor(src, dst, CV_YUV2BGR_Y..原创 2021-04-18 15:18:24 · 745 阅读 · 0 评论 -
记一次--opencv 调试视频流
static int TID = 0;unsigned int __stdcall captureImgThread(void* lpvoid){ Ccamera* _this = (Ccamera*)lpvoid; cv::VideoCapture capture; //capture.open(0);//摄像头 capture.open("C:\\WIN_20210417_22_05_20_Pro.mp4"); while (true) { cv::Mat img;//..原创 2021-04-18 14:39:46 · 118 阅读 · 0 评论 -
windows 10 excel c++ 读取
1.读取方式odbc+excel驱动ocx+excel.exe(需要安装office)2.使用倾向和注意事项 因为没有安装win10 没有安装 office,所以选择了odbc方式。 在mfc方式下直接使用,会弹出 ODBC Excel驱动程序登入失败,处理方式是将 使用类封装成 mfc dll 即可。3.读取注意 每个内容只能读取一次,读取多次会报错。应该是读写信息后对应的内存被释放了,产生野指针问题。 使用CRecordset::snapshot 后方可前后移动游标。...原创 2021-03-29 11:00:46 · 469 阅读 · 0 评论 -
海康PlayM4 播放视频流
1.playM4 下载地址2.里面有文档说明,可以参考细节3.实际应用实例unsigned int CALLBACK thread(LPVOID lpVoid) { auto dlg = (CmfcDlg*)lpVoid; auto pic = dlg->GetDlgItem(IDC_STATIC); PlayFile(pic->GetSafeHwnd()); return 1;}_beginthreadex(NULL, 0, thread, (LPVOID)thi原创 2021-03-29 09:12:23 · 3288 阅读 · 0 评论 -
自定义taskKill and find
由于FindWindow(Ex) 只能够查找具体的窗体 不能够模糊查找,因此有了下文。主要是利用EnumWindows 查找className 并用strstr模糊匹配 再查找title 从而进一步确认要找的进程struct WINDOWINFO_FIND{char *className;char *titleName;HWND hWnd; };B原创 2016-12-09 09:28:36 · 470 阅读 · 0 评论 -
c++ time应用
#include <time.h>//判断两个日期 参考: http://bbs.chinaunix.net/thread-1027013-1-1.htmlvoid chekTime(){ static time_t oldTime = time(NULL); time_t newTime = time(NULL); if (oldTime / 864...原创 2018-08-16 18:21:40 · 183 阅读 · 0 评论 -
redis windows 简单实现
1.git 下载redis https://github.com/MicrosoftArchive/redis.git2.将项目添加到reids项目3.参考RedisCli添加/修改引用4.编译运行 注意:不可使用 <string> 等头文件 会有冲突,那就纯c编程吧附csdn源码下载地址:https://download.csdn.net/down...原创 2018-10-31 11:07:01 · 166 阅读 · 0 评论 -
c++ 面试题总结一
给要面试的你们存点干货 -_---联合体 --考察联合体共用内存static void testUnion(){ union MyUnion { int a; char b[2]; }tU; tU.a = 0; tU.b[0] = 16; //0x10 tU.b[1] = 1; //0x1 ...原创 2019-01-13 09:47:32 · 140 阅读 · 0 评论 -
windows - AndroidStudio3.4 与 .so
1.利用android studio生成so文件1.0创建项目1.1.0 添加 CMakeLists.txt内容:# For more information about using CMake with Android Studio, read the# documentation: https://d.android.com/studio/projects/add...原创 2019-05-31 15:41:07 · 416 阅读 · 0 评论 -
android studio 3.4 与 opencv-4.1.0-android-sdk——简单处理图片
基于上一篇 android studio 3.4 与 opencv-4.1.0-android-sdk 初步调用,这篇实现调用Mat 处理静态图片1.请先参考上一篇文章2.添加资源修改布局 -- pic_test.png 自己随便找一张图片内容:----------------------------Activity_main.xml<?xml version...原创 2019-06-04 16:10:50 · 1071 阅读 · 0 评论 -
vs2017 与 opencv4.1 ---sample
1.将opencv4.1释放到本地2.打开vs2017的开发人员命令提示符cmd --cd 到 opencv\sources\samples 目录下3.编译生成demo4.打开demo项目与测试原创 2019-06-04 17:29:41 · 250 阅读 · 0 评论 -
qt--接触之-参考信息1
圆弧对话框 https://www.cnblogs.com/xj626852095/p/3648101.html分辨率 https://blog.csdn.net/jcy8126/article/details/8260540绘制图片 https://www.cnblogs.com/HULANG-BTB/p/8615959.html https://...原创 2019-08-12 11:27:20 · 179 阅读 · 0 评论 -
qt--接触之-参考信息2
删除item https://blog.csdn.net/wqy248/article/details/79414136移动item https://blog.csdn.net/yunge812/article/details/79339167 https://blog.csdn.net/yueye30121/article/details/12508675...原创 2019-08-12 11:28:35 · 121 阅读 · 0 评论 -
vs2017 qt 打包
参考推荐:https://blog.csdn.net/su_unknown_world/article/details/82317637刚接触qt的同学是否也遇到过,vs2017+qt生成的exe在其他电脑上无法正常运行。 我遇到了 api-msixxx 丢失、Failed to load platform plugin "windows" 等等莫名奇妙的问题 开始...原创 2019-08-12 12:01:45 · 286 阅读 · 0 评论 -
c++ unordered_map 管理函数实例
#include <stdio.h>#include <Windows.h> #include <iostream>#include <functional>#include <unordered_map>using namespace std; class Test {public: void Add(int a, ...原创 2018-06-25 09:14:51 · 634 阅读 · 0 评论 -
c++ 调用lua 错误 显示堆栈信息
本篇实现c++调用lua出错时win32如何显示堆栈信息 test.lua 文件function __G__TRACKBACK__(msg) print("----------------------------------------") print("LUA ERROR: " .. tostring(msg) .. "\n") print(debug.tr...原创 2018-03-09 18:27:16 · 1869 阅读 · 1 评论 -
atl接口
ATL生成实现 参考http://blog.csdn.net/ghevinn/article/details/31729951/#comments总结:1.查找atl 注册信息:regsvr32 FirstAtl.dll 后,打开注册表,ctrl+F 后输入 FirstAtl.dll 开始搜索信息,直到出现下图其中ProgID就是需要的信息2.c++快速调用#原创 2017-06-27 15:02:01 · 451 阅读 · 0 评论 -
Atl 重载 objsafe接口
参考来源:http://blog.csdn.net/sstower/article/details/6586687为了使的IE使用ocx时跳过第一个弹框通过注册表“SOFTWARE\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_LOCALMACHINE_LOCKDOWN"修改实现原创 2017-07-04 16:05:07 · 280 阅读 · 0 评论 -
lib + namespace
如何使得函数用namespace 封装 到lib,再在外部调用?1.libT.cpp#include namespace SystemCmd{ void Test(){printf("sdfsf111");}}2.生成libT.lib>cl /c libT.cpp>lib libT.obj3.test.cpp原创 2017-05-02 14:12:53 · 422 阅读 · 0 评论 -
cl 命令行编译 rc 版本
原由:cl main.cpp 命令生成的exe文件 是不带版本信息的处理方式:1.有个版本的rc文件 通过rc version.rc 生成 version.res 文件 2. 通过命令 cl main.cpp version.res 这样生成的exe就存在版本信息了 注:rc文件可以通过记事本打开修改原创 2016-11-30 17:20:56 · 899 阅读 · 0 评论 -
lib 简单实现
1.简单libT.cpp#include char* Test(){printf("I am from Test!\n ");return "Test";}2.编译生产lib>cl.exe /c libT.cpp>lib.exe /OUT:libT.lib libT.obj3.简单调原创 2017-05-02 11:43:08 · 286 阅读 · 0 评论 -
初学驱动开发-windows驱动-helloWorld
1.准备工作-安装vm虚拟机+虚拟机下安装xp2.下载DriverMonitor+DebugView3.编写代码 #ifdef __cplusplusextern "C"{#endif#include #ifdef __cplusplus}#endif #define PAGEDCODE code_seg("PAGE")#define LOCK原创 2016-08-09 11:25:08 · 5190 阅读 · 0 评论 -
关于质数的求解
1.原始方法,百度到处都是 pass探求方法1:排除法算法:1.将所有要求的整数存储到一个数组里 2. 将平方数的对应的数组值赋值为0 3.输出结果 const long size = 200; long check[size+1] ={0}; for(s = 1; s< size; s++) //保存数据 { chec原创 2015-10-14 14:33:16 · 569 阅读 · 0 评论 -
win32 调用窗体 实现代码
// Function.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h" #include "resource.h"#include #include "src/server.h" //添加类头文件#include "src/client.h"HINSTANCE hInstance=NULL; //main原创 2015-08-18 16:07:04 · 419 阅读 · 0 评论 -
socket tcp 发送大数据或文件注意事项
使用TCP发送大数据或文件:原创 2014-09-15 11:08:15 · 4866 阅读 · 0 评论 -
服务程序调用 CreateProcessAsUser 0xC0000005访问冲突问题
在使用CreateProcessAsUser时出现了 0xC0000005访问冲突问题,百思不得其解。终于在子航的博客http://www.cnblogs.com/hezihang/p/3387283.html找到问题根源 错误代码:#include #pragma comment(lib, "WtsApi32.lib")bool MyImpersonateLoggedOnUse原创 2017-08-16 10:29:08 · 1108 阅读 · 0 评论 -
判断磁盘/U盘 是否 被写保护
应用程序经常要对磁盘做操作,如拷贝文件,读取文件,列举磁盘之类的。 在读取文件时会遇到有些移动盘被写保护的情况,通常处理的方式是在对应盘里写个文件判断是否成功,为了跳过系统弹框用SetErrorMode设置一下 如下代码:#include #include BOOL IsDeviceProtected(char Drive){ BOOL rst = true;原创 2017-08-10 11:01:45 · 883 阅读 · 1 评论 -
获取 文件 后缀 c++
正常情况下可以通过SHGetFileInfoA 或 PathFindExtension 获取文件的类型,当文件无后缀时就需要想别的方法了。 以下以DOC和DOCX文件类型为例子: 正常情况生成的doc文件其二进制数据如下: 正常情况docx文件其二进制数据如下: 通过对比可以看到doc和docx的二进制数据开头都不原创 2018-01-30 16:40:11 · 1581 阅读 · 0 评论 -
初学驱动开发-windows驱动-命令行编译环境
1.下载并安装WDK76002.打开开始菜单Windows Driver Kits\WDK 7600.16385.1\...3.(配置临时环境路径)新建setIncludeXP.bat编辑内容 其中paths值为wdk安装文件对应的一个是头文件,一个是库文件位置set paths=D:\WinDDK\7600.16385.1\increm set include=%inclu原创 2016-08-08 17:47:53 · 4023 阅读 · 0 评论 -
初学驱动开发-文件+注册表
在前几篇的基础上增加文件读写和注册表操作主要由函数TestFile 和 TestReg 来实现#ifdef __cplusplusextern "C"{#endif#include #ifdef __cplusplus}#endif #define PAGEDCODE code_seg("PAGE")#define LOCKEDCODE code_seg()#define INITC原创 2017-06-23 16:25:57 · 407 阅读 · 0 评论