- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 日常任务点
1、完成剩余Shell学习](https://www.runoob.com/linux/linux-shell-array.html)2、B站观看Jira和Gerrit的使用教程3、搞懂GPIO、IIC等概念-----------------------------------------------------------------------------------------2022.3.9------------------------------------...
2022-03-09 14:29:53 101
原创 FFmpeg的基本流程
基本解码流程1. av_register_all();//注册所有文件格式和编解码库3. avformat_open_input();//打开音视频文件4. avformat_find_stream_info();//查找流信息5. CODE_TYPE_VIDEO; //判断是否为视频流6. avcodec_find_decoder();//查找解码器7. avcodec_open2();//打开编解码器8. avcodec_alloc_frame();//分配空间保存帧数据9. av_re
2021-12-27 00:33:33 1096
原创 Qt信号和槽connet()函数
参考文章1参考文章2一、简述 Connect()函数将信号与槽关联起来。函数原型://参数:信号对象,信号,槽对象,槽函数,连接方式static QMetaObject::Connection connect(const QObject *sender, const char *signal,const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection);static QMetaOb
2021-12-26 20:38:52 550
原创 Qt事件简述
一、简述 在Qt中,事件本质上还是基于回调函数实现的。每一个Qt应用程序都对应一个唯一的QApplication应用程序对象,然后调用这个对象的exec()函数,这样,Qt内部框架的事件循环就开始了,一直监听应用程序的事件。 Qt将事件作为一个对象,继承自QEvent类。常见的有键盘事件(QKeyEvent)、鼠标事件(QMouseEvent)和定时器事件(QTimerEvent)等。。。大致与QEvent类的继承关系如图:二、事件处理 当窗口事件产生后,事件会经过:事件派发–>事件过
2021-12-25 10:42:50 617
原创 C++内联函数与宏定义的区别
内联函数的优点内联函数可调式可进行类型安全检查或自动类型转换可访问成员变量另外,定义在类声明中的成员函数会自动转换为内联函数。参考:http://www.cnitblog.com/guopingleee/archive/2009/02/16/54625.html...
2021-12-20 13:25:56 356
转载 单例模式(Singleton)
参考博客简述 单例模式\color{red}{单例模式}单例模式(Singleton Pattern)是一种常用的设计模式,属于创造者模式。单例模式只允许有一个实例,通过将构造函数私有化的方式隐藏对象的创建接口,取而代之的是提供用于获取类单例的公共接口,该公共接口通常需要具备全局访问性,因此用static修饰。其应用场景非常广泛,例如创建管理类,或者限定对象实例的唯一性等。。。实现方式单例模式通常有2种常见的实现方法:懒汉式:使用时才创建,但多线程访问时线程不安全(双检锁)。饿汉式:加载时就
2021-12-16 11:33:28 189
原创 多线程同步(Windows)
参考博客关于线程同步线程间通信的基本同步:互斥\color{red}{互斥}互斥和同步\color{red}{同步}同步。线程同步:指线程间所具有的一种制约关系,即某个线程的执行依赖于另一个线程的消息或执行结果,在它没有得到另一个线程的消息前会一直等待,直接消息到达时才被唤醒。线程互斥:指对于共享的操作系统资源(指的是广义的”资源”,而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其
2021-12-14 19:58:27 477
原创 WaitForSingleObject
参考博客 在多线程的情况下,有时候我们会希望等待某一线程完成了再继续做其他事情,要实现这个目的,可以使用Windows API函数WaitForSingleObject\color{red}{WaitForSingleObject}WaitForSingleObject,或者WaitForMultipleObjects\color{red}{WaitForMultipleObjects}WaitForMultipleObjects。这两个函数都会等待Object被标为有信号(signaled)时才返回
2021-12-14 18:51:06 236
原创 Windows和Mac下的_stdcall
Windows下:typedef void(_stdcall* Func)(const char* param, void* user_param);Mac下:typedef void(__attribute__((stdcall))* Func)(const char* param, void* user_param);后续补充…
2021-12-01 14:02:00 493
原创 记一次链接OpenSSL静态库时出错
主要原因:libssl.a与libcrypto.a这两个库的链接顺序反了。报错:修改前的CMakeLists.txt:cmake_minimum_required(VERSION 3.4.1)set(CMAKE_VERBOSE_MAKEFILE on)file(GLOB_RECURSE SOURCES1 "...../*.cpp")file(GLOB SOURCES2 "....*.cpp")add_library(RSNet SHARED ${SOURCE
2021-10-28 20:08:11 756
原创 Windows获取本机音频设备
主要利用waveIn、waveOut系统接口来实现#include <iostream.h>#include <windows.h>#include <mmsystem.h>int main(){ //获取系统中波形音频输出设备的数目 int nSoundCardCount = waveOutGetNumDevs(); std::cout << "count: " << nSoundCardCount << std::
2021-10-19 17:01:21 594 1
原创 利用lexical_cast获取当前线程id
利用lexical_cast获取当前线程id获取线程id可直接调用**this_thread::get_id()**函数,可经std::cout打印到标准输出,但此时输出的却是十六进制的数,且不能通过普通int型变量保存,因此,需要用lexical_cast转换。int print_thread_id(){ std::string str_thread_id = boost::lexical_cast<std::string>(boost::this_thread::get_id(
2021-10-11 14:02:54 62
原创 Windows数据类型
LPSTR介绍LPSTR:一个32位只想字符串的指针,相当于char*;LPCSTR:一个32位指向字符串常量的指针,相当于const char*;LPWSTR:一个32位只想Unicode字符串的指针,相当于wchar_t*;LPCWSTR:一个32位指向Unicode字符串常量的指针,相当于const wchar_t*;后续补充。。。...
2021-07-09 09:50:31 51
转载 Xcode 快捷键
转自原文 非常实用快捷键 ------------------------功能------------------------ Command + Shift + F 表示:跳转到搜索导航器【非常实用】 Command + Shift + j &nb
2021-06-18 16:59:34 276
原创 比较两个数大小的非常规方法
约束 不能使用if、?、switch语句实现。方法1:取平均值 (使用abs())int max1(int a, int b){ //larger: (a+b + abs(a-b)) / 2 //smaller:(a+b - abs(a-b)) / 2 return (a+b + abs(a-b)) / 2; }2:利用数组int max2(int a, int b){ int array[2] = {a, b}; //larger: array[a < b];
2020-08-12 18:42:06 489
原创 TCHAR与char相互转换
VS中TCHAR与char相互转换TCHAR转charchar转TCHAR示例TCHAR转charsize_t wcstombs( char *mbstr, const wchar_t *wcstr, size_t count );char转TCHARsize_t mbstowcs( wchar_t *wcstr, const char *mbstr, size_t count );示例 char Path[MAX_PATH] = {0}; TCHAR T_Path[MAX_PATH
2020-05-11 16:25:54 3722
原创 字节对齐、8字节对齐
参考博文:参考1 、参考2、参考3在内存管理中经常使用字节对齐来管理分配的内存。1、原理2字节对齐:要求地址位为2, 4, 6, 8…,地址的二进制最后一位为0(2的1次方)。4字节对齐:要求地址位为4,8,12,16…,地址的二进制最后两位为0(2的2次方)。8字节对齐:要求地址位为8,16,24,32…,地址的最后三位为0(2的3次方)。16字节对齐:要求地址位为16,32...
2020-04-20 14:10:02 8252
原创 关于#define A *(int *)"a"的记录
define A *(int *)“a”直接看测试实例:#define A *("int *")"a"printf("---test_s: %s\n", ("a"));printf("---test_d: %d\n", A);printf("---test_p1: %p\n", &A);printf("---test_p2: %p\n", &("a"));prin...
2020-04-15 19:25:27 482
转载 C++设计模式
1、工厂模式在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。1.1、简单工厂模式主要特点是需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。使用简单工厂模式,我们只需要知道具体的产品型号就可以创建一个...
2019-09-05 15:33:10 99
原创 记一次Model/View中修改数据不更新问题
问题描述:在已有的table表格中修改其中的参数中,然后点击[Modify]按钮后,实际相关函数已经成功实现了,但表格界面并没有随之刷新,还是修改之前的数据。解决:在相关的update函数中,调用完dataChanged()函数之后,加上beginResetModel()和endResetModel()这两个函数。PS:这只是针对我个人的情况,在其他情况可能并不能解决问题->_...
2019-08-29 16:32:17 1458 1
翻译 MFC 文档 视图 框架窗口间的关系 和消息传送规律
在MFC中引入了文档-视结构的概念,文档相当于数据容器,视相当于查看数据的窗口或是和数据发生交互的窗口。因此一个完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,CDocument文档类,CView视类。 在程序运行时CWinApp将创建一个CFrameWnd框架窗口实例,而框架窗口将创建文档模板,然后有文档模板创建文档实例和视实例,并将两者关联。一般来讲我们只需...
2019-08-19 10:02:38 172
转载 MFC中对象、句柄、ID之间的区别
转载自: Windows程序中,有各种各样的资源(窗口、图标、光标),系统在创建这些资源的时候会为他们分配内存,并返回标识这些资源的标识号,即句柄HANDLE(ID)。图标句柄(HICON)、光标句柄(HCURSOR)、画刷句柄(HBRUSH)。 为什么有个窗口对象还要窗口句柄呢?还有什么线程句柄,甚至还有控件ID和进程ID呢?MFC中的对象,比如应用程序对象,视图对象等,是对象就会占用内...
2019-08-19 09:55:48 204
原创 记一次解决Qt程序异常退出问题
最近用Qt运行一个项目,编译报几个警告,但运行程序就崩溃,如图。网上的解决方法基本上都是丢失动态库,但没有说具体查找丢失动态库的方法。经过一番查找,找到一篇比较有帮助的博客:https://blog.csdn.net/caoshangpa/article/details/53670560以下是个人的解决方法:主要利用windeployqt查找依赖库1: 在C:\Qt\Qt5.12.0...
2019-06-25 19:32:53 4600
转载 QT:QObject
[转载自:]https://blog.csdn.net/aidem_brown/article/details/80236188 QObject 是所有Qt对象的基类。QObject 是Qt模块的核心。它的最主要特征是关于对象间无缝通信的机制:信号与槽。使用connect...
2019-04-12 18:34:27 177
转载 Qt 之 QSplitter(分离器) Class
[转载自:]https://blog.csdn.net/Heaven_Evil/article/details/79415022 详细描述QSplitter 类实现了一个分离器部件。先看一下控件使用分离器(QSplitter)后的演示效果:左边是一个QTreeWidget,右边是一个QWidget上边放置一个QLabel。没有使用QSplitter之前两个控件的大小是不可以通过拖拽...
2019-04-12 15:25:55 1065 1
转载 QT中的View Model模型
[转载自:]https://blog.csdn.net/tgzjz/article/details/45972273 介绍Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的mode...
2019-04-12 14:52:17 1471
转载 Qt学习笔记(六)项视图类
[原博客地址]https://blog.csdn.net/skc361/article/details/12754193 许多应用程序允许用户搜索、查看和编辑属于某个数据集中的一些个别项。这些数据可能保存在文件中、数据库中或者网络服务器上。处理像这样的数据集的标准方式是使用Qt的项视图类(item view cla...
2019-04-12 14:42:37 700
转载 Qt Model/View理解(一)---构造model
[原博客地址:]https://blog.csdn.net/lutao614/article/details/80859968模型/视图将数据和显示分开进行处理,中间通过代理做桥梁。如果想往QCombox中添加一些子项,你会怎么做呢?除了常用的addItem方法,下面介绍通过模型/视图的方式添加,逐步理解模型/视图的使用方法。1.首先添加一个类,继承自QAbstractListModelc...
2019-04-12 13:16:45 776 1
转载 QAbstractItemView类参考
https://blog.csdn.net/u010002704/article/details/41157963[原博客] 目录公共类型属性公共函数公共槽信号受保护的类型保护功能保护槽详细说明QAbstractItemView类参考QAb...
2019-04-12 12:41:49 935
原创 冒泡排序、快速排序、选择排序
C语言下:冒泡排序、快速排序、选择排序一览本人菜鸟一枚,对于C语言下一些简单排序,平时想到,总会摸棱两可,不能立即理清思路,故今天将冒泡、快速、选择排序重新梳理一遍,并借鉴他人的原理表述发布出来,以便日后时常提醒。若有什么不足的地方,还望指教!!!冒泡排序冒泡排序的基本思想是:每次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。void Bubble_sort(int *arr,i...
2019-02-16 13:00:06 254
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人