![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
开心大爆炸
这个作者很懒,什么都没留下…
展开
-
c++ 数组 自定义 最大
/用堆内存,这样是可以的。//栈内存,最大只能支持到80000左右,这样直接定义时,程序会崩溃,报 越界。原创 2024-06-06 16:04:12 · 148 阅读 · 0 评论 -
c++ vector赋值新技能、函数返回动态数组、 计算静动态数组的大小
注意: int aa[4] = {1,2,3,4};// 这样的不能用_msize来计算数组大小。出来的空间大小,静态数组aa不能用呢。msize是个函数,返回。原创 2024-03-06 15:25:07 · 287 阅读 · 0 评论 -
c++ 结构体多级排序
期望的排序顺序为: 1-1 1-2 1-3 1-4 2-1 2-3 3-5 10-1 10--2 10-3。原创 2023-11-29 16:52:48 · 236 阅读 · 0 评论 -
QT中软件cpu占用率很高,甚至达到了50% 62%左右
CPU 占用率高,子线程中 Sleep(X) 中 X 对于有耗时的操作,X=0即可,对于没有耗时的操作,X = 1 以上才可以,不可以为0.原创 2022-12-05 13:44:26 · 2375 阅读 · 0 评论 -
QT 动态加载 C++的动态链接库dll时 Unknown error 0x000000c1---运行时问题
qt 与c++的 运行时问题原创 2022-11-11 14:00:06 · 2755 阅读 · 0 评论 -
c++常用知识
c++的基础知识原创 2022-11-08 18:03:02 · 567 阅读 · 0 评论 -
VS mfc 配置项目属性表----一劳永逸法
配置属性表,一劳永逸原创 2022-10-11 15:24:34 · 2476 阅读 · 0 评论 -
dll和lib 修改文件名后不能用,如何修改dll与lib文件名称?
修改lib的名称原创 2022-10-11 13:45:53 · 1864 阅读 · 0 评论 -
动态库之间回调函数使用
转自:动态库之间回调函数使用 - 出来打酱油 - 博客园 (cnblogs.com)转载 2022-08-03 09:21:47 · 380 阅读 · 0 评论 -
C++ 设计模式
https://www.cnblogs.com/pandamohist/p/13849601.html转载 2021-05-07 08:17:07 · 63 阅读 · 0 评论 -
opencv中 unsigned char* , BYTE* 转换为 Mat类型 及 路径问题
unsigned char* 转换为 Mat类型其中pBufAddr 为 unsigned char*类型cv::Mat mmat = cv::Mat(stFrameInfo.nHeight, stFrameInfo.nWidth, CV_8UC1, stImageInfo.pBufAddr, 0);BYTE* 转换为 Mat类型其中m_pFrameBuffer 为BYTE* 类型cv::Mat sMat = Mat(sFrameHead.iHeight, sFrameHead.iWidth,原创 2022-05-24 09:52:17 · 2729 阅读 · 0 评论 -
QT 调用vs写的dll 使用OutputDebugString输出调试信息
vs c++写的dll中使用的cout 将调试信息写到控制台中,但qt调用dll时,cout内容没有办法显示了。解决办法:使用OutputDebugStringA char buf[128]; sprintf(buf, "IMAGE_ANALYZE_THD_ %d ", i+1); OutputDebugStringA(buf);在 vs中 OutputDebugStringA的信息在输出中,qt调试时 OutputDebugStringA的信息 咋在 应用程序输原创 2022-05-19 15:13:29 · 955 阅读 · 0 评论 -
C++ STL queque 与 deque的比较
queque 与 deque都可以实现队列queue常用函数push() 在队尾插入一个元素 pop() 删除队列第一个元素 size() 返回队列中元素个数 empty() 如果队列空则返回true front() 返回队列中的第一个元素 back() 返回队列中最后一个元素deque注意:1.当对queue和deque的序列进行 返回第一个,最后一个元素等 读取容器中内容时,一定要确保该容易中有元素,否则 会程序崩溃queue<int&g原创 2022-05-19 15:07:03 · 360 阅读 · 0 评论 -
c++运行程序时,进程内存一直增加
一开始运行正常,后续进程内存越来越大,肯定是申请的内存没释放,查看所有的new的地方,使用完后是否都释放了。而且 如果自己的地方没问题,查看dll是否有问题,先屏蔽掉看看https://blog.csdn.net/qq_35491254/article/details/116751134...原创 2022-05-13 18:36:19 · 3813 阅读 · 0 评论 -
c++11等新特性学习笔记
1.for, foreach是循环遍历数组,但并不改变数组中的内容关于此功能我没查找到能修改数组内容的,如果有,请下方留言再用vs2017运行如下代码时:int mt[5] = { 10 };//只有第一个赋值为10了,其他均为0 //新特性输出 for (auto i : mt){ std::cout << "新特性遍历 i = " << i << std::endl; } for (int i = 0; i < 10; i+原创 2022-05-09 11:03:14 · 313 阅读 · 0 评论 -
c++ .hpp文件及类模板
由于.hpp是在.h中混入.cpp中的代码。hpp文件将定义和实现放在同一个文件,减少了文件的数量如何创建hpp:创建时使用.h 头文件,然后名称修改一下后缀为hpp即可。hpp的特点是Header Plus Plus 的简写。 与.h类似,hpp是C++程序头文件 。 是VCL 专用的头文件,已预编译。 是一般模板类的头文件。 一般将类模板定义为hpp类型的文件 一般来说, .h里面只有声明,没有实现,而.hpp里声明实现都有,后者可以减 少.cpp的数量。 .h里...原创 2022-05-07 16:09:18 · 3400 阅读 · 0 评论 -
vs2017 生成动态链接库 dll与lib
创建dll时如下:创建好后,运行发现只有dll,并没有lib,比较慌。不要着急,先添加一个类,使用extern “C” void __declspec(dllexport) CreateObject(); 实现该函数后,再调试时,就发现有lib啦原创 2022-05-06 10:33:10 · 897 阅读 · 0 评论 -
VC调试问题总结
问题一:IntelliSense: 错误地终止了宏调用解决:在使用CreateWindow时多了一个(原创 2018-10-30 19:08:40 · 2073 阅读 · 3 评论 -
C++ 中using的几种用法
1.配合命名空间用。using namespace std;2.起别名。参考文章为:https://www.cnblogs.com/wangkeqin/p/9339862.htmlhttps://blog.csdn.net/hgxy123/article/details/97768537原创 2020-03-11 08:07:49 · 1612 阅读 · 0 评论 -
E0864 queue 不是模板
c++中 在添加#include 后,弹出E0864 queue 不是模板是因为queue 在命名空间std里,还需要添加声明 #include #include <iostream>using namespace std;#include <queue>原创 2022-04-29 11:48:51 · 1881 阅读 · 0 评论 -
E1696 无法打开 源 文件 “chrono“
针对vs2010 添加头文件 #include 时,编译时 出现错误 : E1696 无法打开 源 文件 “chrono”这是以为 chrono是c++11新增的内容,而vs2010不支持c++11的内容所以,对于vs2010时使用chrono 还是会出现问题。vs2010对c++11的支持程度为:https://blog.csdn.net/dolphin98629/article/details/83011429vs2010对c++11的支持程度](https://blog.csdn.net/原创 2022-04-24 10:20:54 · 2639 阅读 · 0 评论 -
C++ 中 两个数组的赋值、 文件夹创建
有两种赋值方式方法一: 使用遍历的方式int fun[10] = {0}; int func[10] = {0}; for(int i = 0 ;i < 10; i++) { fun[i] = i; } for(int i = 0 ;i < 10; i++) { func[i] = fun[i]; } int b = 0;方法二:使用memcpyint fun[10] = {0};原创 2022-04-19 09:44:48 · 1741 阅读 · 0 评论 -
Debugviewe的使用
debugview 可以捕获程序中TRACE(debug版本)和OutputDebugString(debug和release均可)输出的信息。OutputDebugString,在debug或release情况下都可以输出调试日志trace只在debug模式下输出debugbview的下载地址官方下载地址:DebugView - Windows Sysinternals | Microsoft Docshttps://docs.microsoft.com/en-u...原创 2022-03-18 09:32:46 · 562 阅读 · 0 评论 -
win10 查看电脑mac 地址和ip
win10系统,在使用无线的情况下查看mac和ip,电脑中有vmware虚拟机win+r 调出 cmd命令行,然后输入 ipconfig/allmac地址:ip地址:原创 2022-03-08 10:15:41 · 2337 阅读 · 0 评论 -
VS2010生成sqlite3.lib---32位系统
1.找到vs2010的安装位置由于重装过系统,安装位置改变了。通过vs2010快捷键中,查看快捷键的路径就能看到路径为:D:\Program Files\VS2010\VC\bin2.下载splite文件,并放在同一个文件下官网地址:SQLite Download Pagehttps://www.sqlite.org/download.html解压后全部放在一个文件夹下:3.通过win +r 进入cmd 命令----然后进入 ...原创 2022-03-03 11:27:05 · 1034 阅读 · 0 评论 -
linux windows下使用sqlite
sqlite官网:SQLite Home Pagehttps://www.sqlite.org/index.html原创 2022-03-03 09:10:01 · 626 阅读 · 0 评论 -
C++ 对 命名空间重新命名
namespace spd = spdlog;spdlog是日志的命名空间,spd是重新名后的名称,程序中可以使用该名原创 2022-02-17 17:29:23 · 2438 阅读 · 0 评论 -
QT-TCP服务器端和客户端流程
此篇是介绍TCP的服务器端和客户端的流程,是根据视频写的pro文件添加 network 模块https://www.bilibili.com/video/BV1yt411d7E4?p=59QT开发全套视频服务器端:主要思路: 需要用到两个套接字 QTcpServer;//监听套接字QTcpSocket;//通信套接字具体的步骤为: 建立监听套接字,监听;如果客户端连接成功后,服务器端会触发newConnection信号,在此信号槽内处理: 获取通信套接字,获取发送内容。在关闭时,断开与客原创 2022-02-11 17:26:52 · 2443 阅读 · 0 评论 -
C++ 函数指针 指针函数 智能指针总结
函数指针,指向函数的指针,void(pfun)(int x, int y);需要掌握指针函数,函数的返回值是一个指针 int pfun(int x, int y);,不用特别记忆。使用函数指针的好处: 其功能类似于多态,便于调用者使用。例子如下:int(*pfunc)(int a, int b);简化版本typedef int(*pfunc)(int, int);另一种简化版本using pfunc = int(*)(int, int);参考:https://www.zhihu.com原创 2022-02-08 08:58:59 · 704 阅读 · 0 评论 -
C++ 中 利用SYSTEMTIME 和CTime对当前的时间进行 减三天操作
SYSTEMTIME tm1; ::GetLocalTime(&tm1); CTime tm2(tm1); tm2 += CTimeSpan(-2, 0,0,0); 注意,主要是利用了CTimeSpan中 第一个参数是天数,原创 2022-01-24 17:51:19 · 850 阅读 · 0 评论 -
C++ 逗号运算规则
int nRow = 1; int nCol = 0; //注意运算规则,下面这句就容易出现前面是列是3,后面列是2的情况 GenData(nRow, nCol, DT_CENTER, true, L"中国", cell, nRow+1, nCol++);上文中 各个参数为:GenData(1, 1, DT_CENTER, true, L"中国", cell, 1, 0);我最疑惑的地方就是 第二个参数和最后一个参数最后一个参数nCol++ 的结果为 0 我能理解但对于第二个参数原创 2022-01-11 14:09:47 · 195 阅读 · 0 评论 -
图像边缘检测及霍夫变换
滤波: 滤出噪声对检测的影响,低通滤波,将高频的去除掉。Canny边缘检测建议:使用单通道的灰度图进行操作比形态学梯度效果好,找到的边缘更准确将低频的部分去掉,留下高频的部分。可以先滤波操作,再进行边缘检测。可进行缺陷检测,例子:Sobe算子:和laplacce是带方向的。把图像变化比较剧烈的地方,找出来,求导。laplace 有方向,与sobe一样霍夫变换: 直线,圆霍夫线变换:先进行边缘检测,将得到的二值化图作为霍夫变换的输入。霍夫原变换.原创 2021-12-09 14:50:29 · 2956 阅读 · 0 评论 -
opencv形态学操作
假如图像是黑色底,高亮区域是白色膨胀是对高亮区域进行放大的操作,取局部最大值,可去掉白色中的小黑点。腐蚀是对高亮区域进行缩小,取局部最小值,可去掉小白点。对膨胀尽心操作:原图,膨胀一次时:源码:Mat src = cvLoadImage("../Debug/dliate.jpg", 0); if (src.rows == 0) { return; } Mat deliat; Mat element = getStructuringElement(MORPH_RECT, Si原创 2021-12-09 13:45:00 · 2389 阅读 · 0 评论 -
opencv中形态学操作
opencv —— morphologyEx 开运算、闭运算、形态学梯度、顶帽、黑帽总结:https://www.cnblogs.com/bjxqmy/p/12295654.html在背景是黑色的前提下,亮点是白色https://www.jianshu.com/p/ee72f5215e07转载 2021-11-26 09:08:13 · 82 阅读 · 0 评论 -
C++ opencv中 cvCreateImageHeader 和 cvCreateImage
//由于已经有了数据,则直接用cvCreateImageHeader,如果没有数据则使用cvCreateImage进行创建IplImage *iplImage = cvCreateImageHeader(cvSize(m_sFrameHead.iWidth, m_sFrameHead.iHeight), IPL_DEPTH_8U, m_sFrameHead.uiMediaType == CAMERA_MEDIA_TYPE_MONO8 ? 1 : 3); //memcpy(iplImage, m_pFr原创 2021-11-24 16:37:57 · 2492 阅读 · 0 评论 -
C++11 并发指南系列
C++11 并发指南系列https://www.cnblogs.com/haippy/p/3284540.html转载 2021-09-26 09:09:31 · 68 阅读 · 0 评论 -
opencv detect 抛出异常 的解决方法
问题一:缺少库lib编译时出错:LNK2019无法解析的外部符号“public: __thiscall cv::SURF::SURF(double,int,int,bool,bool)”(??0SURF@cv@@QAE@NHH*/最后解决了: //添加 opencv_nonfree243d.lib.问题2: 函数报异常在detector.detect(img1, keypoints1);时出现的问题:最后发现: 我在解决问题1时,在debug模式下加入了两个库opencv_nonfree24原创 2021-09-24 09:26:44 · 618 阅读 · 0 评论 -
C++ 使用union 联合体发送 串口数据
某Rs232通讯协议上写的 小数类型的转换原则为: C/C++联合体/共用体转换原则整数 类型 的转换为 前低后高的原则,即小端的原则。定义struct dt { char a; char a1; char a2; int nType; double dFlag; float aflag; double afloat[3]; char a3; };//总共44个字节,但用sizeof时,有48个字节union test_machine { dt ts; char buf[原创 2021-07-09 17:24:36 · 729 阅读 · 0 评论 -
C++ 使用 fstream输出 到csv两列数据时,中间记得加 逗号
fstream fs; fs.open("../bin/11.csv", std::ios::app); char buf[128]; for (int i = 0; i < SPECTRUM_GROUP; i++) { fs << i + 380 <<","<< i+ 5 << std::endl; } fs.close();原创 2021-07-09 10:26:23 · 379 阅读 · 0 评论 -
vector的用法
如果vector 为空,则 不用使用任何操作,最好是先使用size判断下我使用了.begin等操作,结果报错了vector iterators incompatible枷锁,要对应解锁,否则会死机。原创 2021-05-26 16:38:19 · 80 阅读 · 0 评论