自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (3)
  • 收藏
  • 关注

原创 C++ 模板初探

模板实例化:模板的声明其实并未给出一个函数或者类的完全定义(definition),只提供了一个函数或类的语法框架模板实例化是指从模板构建出一个真正的函数或类得过程实例化有两种类型:1、显式实例化:代码中明确指定具体类型实例化2、隐式实例化:模板参数推断:模板参数将由被传递的调用参数决定。 在类型推断的时候自动的类型转换是受限制的:如果调用参数是按引用传递的,任何类型转换都不被允许。通过模板...

2022-01-14 11:46:51 357

原创 类的静态成员变量为什么不能再h文件类外初始化

//h文件class Image {public: static void AddProtoType(Image* iamge) { Prototype[nsize_++] = iamge; }private: static Image* Prototype[10]; static int nsize_;};int Image::nsize_ = 0;Image* Image::Prototype[];报错如下:原因:静态成员属于整个类,而不属于某个.

2022-01-06 10:59:05 568

原创 WIN32 代码测试(窗口子类化/超类化)

#include <windows.h>#include <stdio.h>#include<CommCtrl.h> #define MAX_LOADSTRING 256WCHAR szTitle[MAX_LOADSTRING] = L"demo";#define IDC_EDIT 1001LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);LRESULT CALLBACK WndEditPr.

2021-12-24 11:50:41 202

原创 窗口子类化和超类化

目录窗口子类化 窗口超类化窗口子类化 窗口子类化的目的是在不修改现有代码的前提下,扩展现有窗口、控件的功能。它的思路很简单,就是将窗口过程地址修改为一个新函数地址,新的窗口过程函数处理自己感兴趣的消息,将不感兴趣的消息丢给原窗口过程处理。窗口子类化步骤:(1)正常创建系统控件/窗口,得到控件/窗口的句柄。(2)调用GetWindowLong()得到原来的系统的窗口函数OldWndProc。...

2021-12-24 10:42:29 589

原创 WIN32 代码测试(Control)

#include <windows.h>#include <stdio.h>#include "resource.h"#define IDC_STATIC 1001#define IDC_BUTTON 1002#define IDC_RADIO 1003#define IDC_SCBL 1004#define IDC_COMBOX 1005#define IDC_LISTBOX 1006#define MAX_LOADSTRING 256WCHAR s.

2021-12-23 17:23:35 465

原创 WIN32 创建控件

控件也是窗口,只不过是被微软预先创建好的一种窗口类,比如button就是一个类名为“BUTTON”的类。既然控件实际上是窗口,当然也是用CreateWindow或者CreateWindowEx这个函数来完成的。HWND CreateWindow( LPCTSTR lpClassName, //控件的类名 LPCTSTR lpWindowName, //控件的名字或者文本 DWORD dwStyle, //控件风格 int x,...

2021-12-23 16:22:07 1163

原创 WND32 文本绘制

文本输出:1、TextOut 函数在客户区指定坐标输出一段文本BOOL TextOut ( //如果函数调用成功,返回TRUE,否则,返回FALSE HDC hdc, //用于显示字符串的控件ID int nXStart, //字符串所在起始位置左上角(X,Y)的X坐标 int nYStart, //字符串所在起始位置左上角(X,Y)的Y坐标.

2021-12-21 18:45:29 359

原创 WIN32 代码测试(BitMap)

#include <windows.h>#include <stdio.h>#include "resource.h"#define MAX_LOADSTRING 256WCHAR szTitle[MAX_LOADSTRING] = L"demo";LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);bool InitInstance(HINSTANCE hInstance, int nCmdShow).

2021-12-21 11:23:39 185

原创 WIN32 bitmap

位图计算机能以位图和矢量图格式显示图像。1、位图(BitMap)图像又称点阵图或光栅图,它使用我们称为像素(象素,Pixel)的一格一格的小点来描述图像。常见的文件格式:BMP、JPG(JPE,JPEG)、GIF等。2、矢量图(Vector)使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的。位图和矢量图最简单的区别就是:矢量图可以无限放大,而且不会失真;而位图则不能。Win32位图使用1、在资源中添加位.

2021-12-21 11:03:13 906

原创 QT d_ptr 学习

Q_D指针在QT源码中大量的使用,其根本目的在于解决二进制兼容问题。何为二进制兼容?1.动态链接到库的前一个版本的程序继续与库的新版本一起运行而不需要重新编译,则库是二进制兼容的。2.程序需要重新编译以使用新版本的库运行,但不需要任何进一步的修改,则该库是源代码兼容的。让所有的共有类都拥有一个指针,这个指针包含所有数据的私有数据结构。这个指针就是称为d指针的Q_D指针。起源:基类/* DObject 基类 *//*** DObject.h ***/class

2021-12-16 23:21:52 499

原创 GDI 绘图

DC(Device Context): 绘图设备HDC: 绘图设备句柄GDI(Microsoft Graphics Device Interface) Win32提供的绘图APIGDI 绘图1、窗口句柄得到设备环境句柄HDC,1、 采用BeginPaint获取HDC PAINTSTRUCT ps;// 保存HDC hdc = ::BeginPaint( hwnd, &ps );/* 此处添加绘图代码*/::EndPaint( hw...

2021-12-15 22:35:16 1263

原创 WIN32 代码测试(资源文件)

#include <windows.h>#include <stdio.h>#include "resource.h"#define MAX_LOADSTRING 256WCHAR szTitle[MAX_LOADSTRING] = TEXT("demo");LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);bool InitInstance(HINSTANCE hInstance, int nCmd.

2021-12-11 20:59:44 306

原创 WIN32 资源

首先解释一下句柄:win32中的句柄在数值上表示一个32位的数,用来标识应用程序/进程中不同对象以及同类对象中的不同实例,而所谓实例就是指被实例化的对象,实例化的过程就是通过类创建对象的过程。实例化对象的目地是为对象开辟内存空间。所以句柄是指向一片内存空间的。句柄与普通指针的区别在于,指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。也就是说句柄是指向指针的指针...

2021-12-11 11:20:01 725

原创 WIN32 代码测试(消息过程 + 信号)

#include <windows.h>#include <stdio.h>#define MAX_LOADSTRING 256#define WM_MESSAGE_A WM_USER+1WCHAR szTitle[MAX_LOADSTRING] = TEXT("demo");LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);VOID CALLBACK TimerProc(HWND hWnd, UI.

2021-12-09 17:28:56 398

原创 WIN32 消息总结

1、键盘消息键盘会产生如下两种消息1、按键消息消息分类:WM_KEYDOWNWM_KEYUPWM_SYSKEYDOWN 系统按键按下时产生,如ALT F10WM_SYSKEYUP参数 WPARAM 按键的vritual key LPARAM 按键的参数,比如按下几次2、字符消息WM_CHAR :是由WM_KEYDOWN消息Translate()之后产生的,然后再发送给窗口过程。TranslateMessage...

2021-12-08 22:03:30 2978

原创 mac编程提示 Undefined symbol: _OBJC_CLASS_$_xxxx

使用cocoa编程,编译提示报错Showing All Issues Undefined symbol: _OBJC_CLASS_$_NSAlert解决办法:link Binary With Libraries 添加Foundation.framework Cocoa.framework

2021-12-07 14:22:58 2958

原创 win32 消息循环

windows系统把应用程序的输入事件传递给各个窗口,每个窗口有一个函数,称为窗口消息处理函数。窗口消息处理函数处理各种用户输入,处理完成后再将控制权交还给系统。窗口消息处理函数一般是在注册一个窗口的时候指定的。在Windows下,只有那些具备窗口(GUI用户接口界面)的进程,才会有消息队列,那些不具备GUI的进程是没有消息队列的。也就是说:操作系统在开启一个新的进程时,并没有为其创建消息队列,而是当进程第一次调用GDI函数后,才创建,并且进程持有窗口时,才持有消息队列...

2021-12-05 22:44:56 686

原创 反思日记 1205

周五和同事一起学习了樊登的《认识如何学习的》以及《刻意练习》两本书,希望通过学习借鉴科学的学习方法能够在形成一套系统的高效的学习方式,进而能在短时间内“暴力提升”自己的代码开发能力。《认识如何学习的》里面有三个关键的部分1. 前概念:我们对基于自己经验认知对知识点的认识。就像樊登讲述的鱼听到青蛙讲述奶牛认为是长了两个乳房的鱼。2、元认知:元认知就是对认知的认知。樊登有一句话记忆良久-如果你对你的无知无知,你就永远不会思考。达克效应:认知偏差,认为自己错误的认知是正确的,就不会反思、.

2021-12-05 21:38:31 115

原创 devenv 设置 未能完成操作

devenv 解决方案文件.sln /build [ 解决方案配置 ] [ /project 项目名称或文件 [ /projectconfig 名称 ] ]/Build 使用指定的解决方案配置生成解决方案或 项目。例如“Debug”。如果可能存在多个平台, 则配置名称必须用引号括起来 并且包含平台名称。例如“Debug|Win32”。在进行[ 解决方案配置 ] 配置的时候...

2021-12-01 10:40:28 386

原创 自定义URL协议在Web中启动本地应用程序

转:通过自定义URL协议在Web中启动本地应用程序_jackychen_king的专栏-CSDN博客_自定义url协议通过自定义URL协议在Web中启动本地应用程序1、注册应用程序来处理自定义协议 你必须添加一个新的key以及相关的value到HKEY_CLASSES_ROOT中,来使应用程序可以处理特殊的URL协议。 新注册的key必须与协议scheme相匹配才可以被添加。例如,增加一个“alert:”协议,被增加到HKEY_CLASSES_ROOT的key必须是alerhttps://b...

2021-11-08 18:23:26 539

原创 偶遇的面试题

1.free()函数入参是一个void*指针,它是如何知道被指向的大小的?举个例子:假设你用malloc需要申请100字节,实际是申请了104个字节。把前4字节存成该块内存的实际大小,并把前4字节后的地址返回给你。 free释放的时候会根据传入的地址向前偏移4个字节 从这4字节获取具体的内存块大小并释放。2、c/c++程序如何控制执行到某个特定内存地址?如果想让程序跳转到绝对地址0x100000处执行,可以把绝对地址0x100000强制转换成函数指针,然后再用函数指针的方式调用函数就可以了。.

2021-10-20 11:33:05 297

原创 智能之针综述(1)

在冯诺依曼的体系结构中,一个进程必须有:代码段,堆栈段,数据段。在C++中,堆区动态内存的管理是用两对对运算符完成的:new和delete/malloc和free,new/malloc:在动态内存中为对象分配一块空间并返回一个指向该对象的指针,delete/free:指向一个动态独享的指针,销毁对象,并释放与之关联的内存。动态内存管理经常会出现两种问题:一种是忘记释放内...

2021-10-18 16:08:24 65

原创 C++ RTTI 及 虚函数表

RTTI概念RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型。RTTI机制的产生C++是一种静态类型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态性的要求,C++中的指针或引用(Reference)本身的类型,可能与它实际代表(指向或引用)的类型并不一致。有时我们需要将一个多态指针转换为其实际指向对象的类型,就需要知道运行时的类型信息,这就产生

2021-10-13 18:35:18 612

原创 QT VS2017 源码调试出现Qt5cored.pdb 解决方法

1、首先明确你的版本,然后修改下面中连接的版本号,5140代表5.14.0版本。Index of /online/qtsdkrepository/windows_x86/desktop/qt5_5140/qt.qt5.5140.debug_info.win32_msvc20172、下载已下两个文件5.14.0-0-201912110700qttools-Windows-Windows_10-MSVC2017-Windows-Windows_10-X86-debug-symbols.7z5.14.

2021-10-08 15:46:25 714 2

原创 xcode报错:Cycle inside *******

xcode报错:Cycle inside *******; building could produce unreliable results. This usually can be resolved by moving the target's Headers build phase before Compile Sources.Cycle details:Showing All IssuesCycle inside rtc_extension; building could produce

2021-08-18 18:46:05 2204

原创 QT使用qt.conf文件来部署应用程序

起因:This application failed to start because itCould not find the Qt platform plugin "cocoa" in ""后经查证是没有macdeployqt进行部署,程序内没有平台依赖库Plugins文件Qt程序启动时会用QLibraryInfo类载入qt.conf文件, 按下面的路径顺序搜索 :资源系统, :/qt/etc/qt.conf Mac系统下会在资源目录, 例如:assistant.app/C...

2021-08-12 11:15:25 1345

原创 Framework 查看是静态库还是动态库

1、cdxxx.framwork2、file xxx 注释:xxx为xxx.framwork下的二进制文件3、判断: 静态库包含“current ar archive random library”字样。 动态库包含“dynamically linked shared library”字样...

2021-07-20 15:41:14 595

原创 shell 脚本 数组遇空格终止

SRC_EXE_HELPER_EXE_NAME=( $SRC_EXE_DIR_NAME" Helper" $SRC_EXE_DIR_NAME" Helper (GPU)" $SRC_EXE_DIR_NAME" Helper (Plugin)" $SRC_EXE_DIR_NAME" Helper (Renderer)")for HELPER_EXE in ${SRC_EXE_HELPER_EXE_NAME[@]};doecho $HELPER_EXEdone输.

2021-07-07 15:18:45 268

原创 mac. xcode. messagebox

某些情况下使用messagebox 阻塞程序,进而附加进程调试是比较舒服的。mac 无法使用 <windows.h>,因此无法使用windows 下的messagebox,因此采用cocoa的能力封装messagebox来满足自己的需要//messagebox.h#ifndef CEF_MESSAGE_BOX_H_#define CEF_MESSAGE_BOX_H_#include <string>#pragma oncenamespace client {

2021-07-05 16:59:59 264 2

原创 linux qt creator 无法调试

ubuntu linux操作系统,现象是qt creator 一启动调试,就提示"you can't do that without a process to debug"。网上的解答大多是把程序设置成debug模式,但是不生效。下面 介绍解决方案 1、在/etc/ld.so.conf.d文件夹中新建一个文件,比如Qt.so.conf, 2、其中加入一行语句/home/Qt5.9.9/Tools/QtCreator/lib注意要换成你机器上的qt creator...

2021-06-29 18:29:58 1145

原创 2021-06-29 ffmpeg临时记录

我们将 H264 和 AAC 码流存储为MP4文件的时候,就需要在 MP4文件中增加两个流通道,一个存储Video:H264,一个存储Audio:AAC。(假设H264和AAC只包含单个流通道)。avformat_new_stream 即在 AVFormatContext 中创建 Stream 通道。AVStream包含很多参数,用于记录通道信息,其中最重要的是 :AVCodecParameters * codecpar :用于记录编码后的流信息,即通道中存储的流的编码信息。AVRa..

2021-06-29 18:06:10 70

原创 mac 软件多开

1,打开终端2,open -n /Applications/APP's Path注:

2021-06-25 16:39:44 383

原创 ubuntu 编译cef3并运行

1、安装cmake sudo apt install cmake2、根据cmake-list中提示安装必须的包: 1、depends build-essential 安装: apt-cache depends build-essential 2、libgtk3.0-dev 安装: apt-get install libgtk-3-dev3、 cmake -f CMakeLists.txt 缺什么补什么 在ubuntu中,如果在...

2021-06-07 16:58:57 754

原创 win32 CreateWindow 返回 null

经过检查发现 CreateWindow 与RegisterClass 的lpClassName不一致导致。

2021-05-20 10:31:05 173

原创 windows 各种消息

win32 消息

2021-05-20 10:27:57 50

原创 找时间重新学习一下C++服务器相关知识

找时间自己搭建一下服务器,再温习一下相关知识https://blog.csdn.net/qq_36573828/article/details/82784425

2021-05-17 12:08:14 42

原创 Linux ffmpeg编译踩坑

1、安装freetype字体库,avfilter添加文字水印的依赖项;下载freetype:https://www.freetype.org/download.html;配置、编译、安装、读取版本信息./configure make sudo make install踩坑1、GNU make (>= 3.81) or makepp (>= 2.0) is required to build FreeType2.Please try MAKE=<GNU m

2021-04-16 17:50:13 956

原创 ubuntu 分区安装

分配大小 60G选择安装Ubuntu安装选项安装类型:选择其他选项新建分区表1、swap区:设为逻辑分区、作用跟电脑内存类似,大小也可以和电脑内存一样大;一般2G就可以232、/boot区:设为主分区,引导系统的,分配200M-500M就可以,条件好些分配1G;3、/.区(主分区):设为主分区,存放系统,类似windows系统的C盘,大小根据电脑性能分配,一般建议存储空间的20%-35%;4、/home区:设为逻辑分区,储存用户数据文档的,剩下的存储空间.

2021-04-16 16:31:12 10085

原创 编译libcurl+ openssl

1、安装ActivePerl 地址:https://platform.activestate.com/featured-projects 1、注册账号从featured-projects下载完整安装包,非完整版会报错2、zlib编译 目录:zlib\contrib\vstudio\vc14 编译所需版本3、OpenSSL: 从 github 上 clone 来的 master 分支,switch 到...

2021-04-14 18:35:57 364

原创 mac 终端 颜色配置

安装oh-my-zshgithub连接:https://github.com/robbyrussell/oh-my-zsh克隆/下载,然后执行:cd ohmyzsh-master/tools/sh ./install.sh 安装Solarized显示方案去https://github.com/altercation/solarized,其中包含了颜色方案应用在各种各样平台、终端、软件的配置文件。找到自己用的终端文件夹。如我用的是Mac Terminal,那么就在osx-ter

2021-04-09 17:53:52 644

ffmpeg+x264.rar

ffmpeg+X264 windows 动态库

2021-07-05

linux-ffmpeg.7z

linux环境下编译ffmpeg静态/动态库

2021-04-16

cef离屏渲染osr示例

用vs2017编译通过

2021-01-12

空空如也

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

TA关注的人

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