自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 C++ --- error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”

静态调用DLL Project | setting Link选项卡Library modules处 添加“XXX.lib” 然后#include "XXX.h" 把XXX.lib(引入库文件),XXX.DLL(动态库文件) XXX.h(头文件) 全部放到工程目录下解决方法:1、右击工程 -->属性->配置属性-->常规--->字符集---->使用unicode字符集2、右击工程 -->属性->配置属性-->C/C++-->语言--..

2020-08-07 22:19:37 5

原创 C++ --- Dll文件的生成与调用(二)之动态库注入技术

这里的操作是在C++ --- Dll文件的生成与调用(一)的基础上进行修改和拓展的1、添加动态库入口函数的方式生成Dll文件,这个需要Windows的支持DemoDll.h文件#pragma once#include<Windows.h> // 引用Windows库#ifdef DemoDll#define DemoDll_API __declspec(dllexport) // 导出#else#define DemoDll_API __declspec(d

2020-08-07 22:13:38 8

原创 C++ --- Dll文件的生成与调用(一)

1、动态库dll概念动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式。这些库函数的扩展名是 ”.dll"、".ocx"(包含ActiveX控制的库)或者 “.drv”(旧式的系统驱动程序)。2、使用VS生成dll文件(1)vs 那么可以直接创建c++空项目,然后修改一下项目属性,然后在制作无疑是最好的方式。(2)添加一个预处理定义注意:大概是.

2020-08-06 00:53:45 13

原创 QT --- VS2017+Qt5.12 编译报错【E2512 功能测试宏的参数必须是简单标识符 】的解决方法

1、问题的产生在搭建好vs2017+qt环境后新建一个qt 空的项目时,编译运行,可以正常运行程序,窗口出现,如下图所示2、解决问题第一种方法:百度所得:将生成+IntelliSense更改为仅生成但这样总觉得没有解决问题第二种方法:根据错误提示,定位报错的文件和位置为qcomlilerdetection.h将这段代码修改如下:#if defined(__cplusplus)#if defined(__clang__)#if QT_HAS_CPP_ATT...

2020-08-05 19:23:36 13

原创 QT --- VS嵌入QT开发环境搭建

背景:QT有自带的编译器,但是在windows开发还是习惯用VS,而且VS强大的调试功能更胜于QT所以在VS中嵌入QT开发,MFC已经是过去式了一、下载安装QT与VS20171、QT下载与安装(1)QT下载直接进QT官网找下载地址比较难找,QT5.12下载地址http://download.qt.io/archive/qt/5.12/5.12.9/(2)QT安装,主要是在安装过程中选择编译器2、VS2017下载VS官网提供的下载老是打不开,这里直接从MSDN下载2..

2020-07-31 12:40:48 30

原创 QT --- Qt实现tab键的自由切换【事件过滤实现】

背景:qt在ui界面是默认打开tab键切换的,并且可以通过UI界面界面调整tab切换控件的顺序,但我们在自己设计界面时,具体应用场景多是tab在某几个控件进行切换,那么如何实现呢?这里通过为控件安装事件过滤器的方法进行实现。mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow;

2020-07-28 21:09:28 30

原创 QT --- Qt的lineEdit添加鼠标点击事件

QT的很多控件没有设置鼠标点击事件,这里以lineEdit为例重写类并添加鼠标点击事件具体步骤如下:1. 重写lineEdit类,自定义mousePressEvent的相关操作,在头文件中申明SIGNAL2. 在主程序中添加lineEdit的槽函数3. 在UI窗口中将lineEdit控件提升为自定义的lineEdit类具体源码如下:mylineedit.h#ifndef MYLINEEDIT_H#define MYLINEEDIT_H#include <QWi.

2020-07-28 20:30:37 27

转载 摄影名词解释 (ISO、快门、光圈、曝光、测光与测光模式、曝光补偿、焦距、光学变焦与数码变焦、景深与光圈优先、白平衡与RAW)

种田要知节气,开车要懂离合,任何一样手艺都有行话。虽然我觉得尽量从实际问题说起,尽量不要说的很专业,但有几个词却是谈到摄影无法避开的词,它们是:光圈,快门,曝光,焦距,ISO,景深。ISO(感光度)与图片质量ISO -- 感光度,是一个曝光率极高的词,我们在超市买饼干的时候就可能会看见包装袋上写:本公司已通过ISO9001质量体系认证。这个ISO是国际标准组织的缩写,International Standards Organization。国际标准组织制定饼干管理标准,也制订胶卷的生产标准,所.

2020-05-10 20:11:03 268

转载 摄像头基础知识介绍

一、摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像。数字信号处理芯片DSP(DIGITAL SIGNAL PROCESSING)功能:主要是通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号通过USB等接口传到PC等设备。DSP结构框架:  1. ISP(image signal pro..

2020-05-10 19:42:53 100

原创 摄像机和镜头的基础知识

1. 相机基础知识按感光器件类型可分为2大类,CCD器件和CMOS器件 CCD CMOS 设计 单一感光器,集中统一放大 每个感光器连接放大器 灵敏度 同样面积下,感光开口小 灵敏度底 成本 线路品质影响程度高,成本高 CMOS整合集成,成本低 解析度 连接复杂度低,解析度高 新技术解析度高 噪点比 单一放大,噪声低 放大器多,特性不一致,噪点高 功耗比 需外加电压,功耗高 直接放大,功耗低.

2020-05-08 20:48:46 94

转载 word2013自动生成目录的时候,如何调整目录格式?

背景介绍:毕业之际,最烦的就是时间不够,重要的时间还浪费在各种修改格式上面,很多格式在网上一时找不到解决办法。比如word自动生成目录这个。图为要求的格式目录:(1)设置标题等级:我们在word中按照自动生成目录的方式,对每个一级标题、二级标题、三级标题等分别添加样式格式(添加方法简单,简单见下图。也可自行百度,很简单。)选中要修改成标题的文字,根据需求设置标题等级。(2)自动添加...

2020-03-23 17:26:22 196

原创 面试 --- C考点

C语言相关知识点预处理器(Processor)用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出...

2020-03-02 19:35:36 117

原创 word论文排版操作

一、在开始对论文进行排版的时候,对特殊字符进行显示的设置?单击菜单栏->文件->选项->显示,勾选一些必要的特殊字符显示一、从第一章正文开始插入页码操作方法?1、首先,打开需要从指定页开始插入页码(指定页插入页眉也是类似的操作方法)的Word文件。然后将光标移到指定页面的第一个字符所在的位置前。2、鼠标移到菜单栏->布局->分隔符...

2020-03-02 16:45:38 89

原创 C++ 文件读写操作

一、文件类型分为两种: 1> 文本文件 - 文件以文本的ASCII码形式存储在计算机中 2> 二进制文件 - 文件以文本的二级制形式存储在计算中二、文本文件读写操作1、文本文件写文件步骤如下: 1> 包含头文件<fstream> 2> 创建流对象 ofstream ofs;...

2020-02-10 14:14:46 159

原创 C++ 多态的理解

1、多态分类: 静态多态:函数重载和运算符重载都属于静态多态, 动态多态:派生类和虚函数实现运行时多态2、静态多态和动态多态的区别:静态多态的函数地址早绑定 – 编译阶段确定函数地址 动态多态的函数地址晚绑定 – 运行阶段确定函数地址class Animal{public: //Speak函数就是虚函数 //函数前面加上virtual关键...

2020-02-10 13:17:43 73

原创 C++ 继承的理解

1、继承的语法class 子类:继承方式 父类2、继承方式一共有三种公共继承保护继承私有继承 继承方式/基类成员 public成员 protected成员 private成员 public继承 public protected ...

2020-02-09 16:04:14 81

原创 C++ 对象模型与static

一、C++对象模型1、在C++中,类内的成员变量和成员函数分开存储2、只有非静态成员变量才属于类的对象上class Person {public: Person() { mA = 0; } //非静态成员变量占对象空间 int mA; //静态成员变量不占对象空间 static int mB; //函数也不占对象空间,所有函数共享一个函数实例 void fun...

2020-02-08 15:14:07 50

原创 C++ 深拷贝与浅拷贝

一、C++构造函数的分类两种分类方式:按参数分为: 有参构造和无参构造按类型分为: 普通构造和拷贝构造三种调用方式:括号法显示法隐式转换法//1、构造函数分类// 按照参数分类分为 有参和无参构造 无参又称为默认构造函数// 按照类型分类分为 普通构造和拷贝构造class Person {public: //无参(默认)构造函数 Person()...

2020-02-08 13:44:44 59

原创 C语言 --- 实现字符串字串查找strstr

#include <stdio.h>char *strStr(const char *str1, const char *str2){ int i = 0; if (*str2) { while (*str1) { for (; *(str1 + i) == *(str2 + i); i++) { if (!*(str2 + i + 1)) ...

2020-01-06 19:16:28 112

原创 vscode远程开发配置

windows下使用vscode1、下载并安装vscode,并安装remote development,安装这个之后,会自动安装remote-ssh等2、先用远程连接工具尝试服务器,这里使用git远程连接服务器3、由于每次登陆都要输入密码,为了避免麻烦,这里配置sshkey1>在windows下生成秘钥ssh-keygen.exe执行完上面的命令之后,在wi...

2019-12-28 14:30:08 137

原创 更换apt-get源 与 更换pip源

更换apt-get源Ubuntu 18.04 在系统设置里面是找不到软件源设置界面按钮的(找了好久都没找到T-T),所以需要一些指令帮助启动图形界面以便设置软件源。1、输入命令sudo update-manager -c -d2、会弹出Software Updater提示框,这就好办了,点击左下角Settings…按钮,久违的软件源设置就会出来啦。3、那就开始愉快地设置软件源...

2019-12-20 20:01:35 62

原创 python环境搭建之三 --- Linux下安装pycharm

上一篇中讲到了可以用IDE的方式运行python程序,这里介绍下在Linux中如何安装pycharm。1、下载pycharm安装包https://www.jetbrains.com/pycharm/download/#section=linux2、下载完成之后解压、安装tar -jxvf ....tar.gz进入bin目录执行 ./pycharm.sh3、第一次装选...

2019-12-15 21:13:10 87

原创 python环境搭建之二 --- 运行python脚本的三种方式

一、解释器 python / python3Python 的解释器# 使用 python 2.x 解释器$ python xxx.py# 使用 python 3.x 解释器$ python3 xxx.py在windows下用python解释器执行的方式:1)Win + R打开dos命令行窗口2)键入python xxx.py即可运行xxx.py脚本...

2019-12-15 21:02:10 56

原创 python环境搭建之一 --- 安装python pip

一、python2 与 python3 的区别目前市场上有两个 Python 的版本并存着,分别是 Python 2.x 和 Python 3.x新的 Python 程序建议使用 Python 3.0 版本的语法• Python 2.x 是 过去的版本– 解释器名称是 python• Python 3.x 是 现在和未来 主流的版本– 解释器名称是 python3– 相对于 Pyt...

2019-12-15 20:55:46 48

原创 嵌入式Linux开发环境搭建之十一 --- Putty连接虚拟机Centos出现:Network error:Connection refused的解决方法

场景:新装的Ubuntu1804,装好之后啥也没干,只想快点搭好环境。在Mobaxterm底下连接服务器的时候,一直报错Network error:Connection refused解决方法如下:1、在Ubuntu底下执行ssh localhost如果提示:ssh: connect to host localhost port 22: Connection r...

2019-11-18 17:19:47 98

原创 C语言 --- 实现字符串反转

方法一:通过开辟与源字符串一样大小的内存实现反转#include <stdio.h>#include <string.h>void test01(){ int count = 0; char src[] = "hello,world"; char *dest = NULL; int len = strlen(src); dest = (char*)...

2019-11-10 12:38:42 85

原创 C语言---函数指针与指针函数

//函数指针 是指向函数的 指针 //指针函数 函数的返回值是一个指针的 函数1、指针函数的例子int * func(void);返回值是指针的函数2、函数指针的定义//函数指针的定义方式void test01(){ //先定义出函数类型,再通过类型定义出函数指针 typedef void(FUNC_TYPE)(); FUNC_TYPE * pFun...

2019-11-08 22:29:36 47

原创 C语言 --- 一维数组名的理解

1、两种情况下,一维数组不是指向数组首元素地址的指针 int arr[5] = { 1, 2, 3, 4, 5 }; //除了两种特殊情况下,一维数组名称都是指针首元素的地址 //特殊情况1: 对数组名称 进行sizeof printf("sizeof arr = %d\n", sizeof (arr)); //20 //特殊情况2: 对数组名称 取地址 //int * ...

2019-11-06 20:08:01 60

原创 malloc calloc realloc

/*realloc的机制:如果比原来分配的内存要大,有两种情况1、如果原来空间的后面有足够大的空间,那么直接在后面继续开辟内存,返回原来 的地址2、如果原来空间的后面没有足够大的空间,那么系统会直接分配一个新的空间,这个新空间就是需要的内存空间,将原有空间下的数据拷贝到新空间,并且将原有空间释放,返回新空间的首地址*//*calloc与malloc的不同calloc和malloc...

2019-11-06 10:10:47 39

原创 C语言反转字符串操作

#include <stdio.h>void reverseString1(char *str){ if (str == NULL) return; int begin = 0; int end = strlen(str) -1; while (begin < end) { char temp = str[begin]; str[begin] = s...

2019-11-05 21:26:55 36

原创 C语言中的const,冒牌货常量

const 修饰的全局变量,初始化则存放在data区,未初始化放在bss区 不可以直接修改;用指针的方式间接修改,编译不出错但是运行会出错const修饰的局部变量, 放在栈上 不可以直接修改;用指针的方式间接修改,编译不出错但是运行也不出错 用指针间接修改的方式可以改变const修饰的局部变量#include <...

2019-11-05 18:26:35 51

原创 C语言链表基本操作

#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; //数据域 struct Node *next; //指针域}Node;Node* createList(){ Node* headNode= (Node *)malloc(sizeof(Node...

2019-10-17 19:55:47 118

原创 TCP与UDP的区别

TCP与UDP区别TCP 是面向连接的,UDP 是面向无连接的 UDP程序结构较简单 TCP 是面向字节流的,UDP 是基于数据报的 TCP 保证数据正确性,UDP 可能丢包 TCP 保证数据顺序,UDP 不保证 TCP对系统资源要求较多,UDP对系统资源要求较少UPD相对TCP的优势UDP以其简单的、传输快的优势,在越来越多的场景取代了TCP,如实时游戏、直播1&g...

2019-09-26 22:39:44 36

原创 C实现字符操作函数,strcpy, strcat, strcmp, memcpy

strcpy的实现char *strcpy(char *strDest, const char *strSrc){ assert((strDest!=NULL) && (strSrc !=NULL)); char *address = strDest; while( (*strDest++ = * strSrc++) != '\0' ) ...

2019-09-26 21:17:29 66

转载 C实现快速排序

本节介绍一个非常优秀且最常用的排序算法,快速排序算法。这个算法极其重要,初学者一定要掌握。快速排序尤其适用于对大数据的排序,它的高速和高效无愧于“快速”两个字。虽然说它是“最常用”的,可对于初学者而言,用它的人却非常少。因为虽然很快,但它也是逻辑最复杂、最难理解的算法,因为快速排序要用到递归和函数调用。快速排序所采用的思想是分治的思想。所谓分治,就是指以一个数为基准,将序列中的其他数往它两...

2019-09-26 18:58:51 71

转载 C++ 运算符重载和函数重载

C++ 重载运算符和重载函数C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,...

2019-09-24 09:46:19 34

原创 C++ 类与const关键字

在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定。const 可以用来修饰成员变量、成员函数以及对象。const成员变量const 成员变量的用法和普通 const 变量的用法相似,只需要在声明时加上 const 关键字。初始化 const 成员变量只有一种方法,就是通过参数初始化表const成员函数const 成员函数可以使用类中的所有成员变量,但是不能...

2019-09-24 09:25:47 156

原创 C++ 析构函数

析构函数的概念析构函数(destructor)是成员函数的一种,它的名字与类名相同,但前面要加~,没有参数和返回值。一个类有且仅有一个析构函数。如果定义类时没写析构函数,则编译器生成默认析构函数。如果定义了析构函数,则编译器不生成默认析构函数。析构函数在对象消亡时即自动被调用。可以定义析构函数在对象消亡前做善后工作。例如,对象如果在生存期间用 new 运算符动态分配了内存,...

2019-09-24 08:51:21 56

原创 C++ 构造函数

1.构造函数的概念1.1构造函数的概念在C++中,有一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不能调用),而是在创建对象时自动执行。这种特殊的成员函数就是构造函数(Constructor)。1.2构造函数是干什么的?构造函数的一项重要功能是对成员变量进行初始化,为了达到这个目的,可以在构造函数的函数体中对成员变量一一赋值,还可以采用参数初始化表。...

2019-09-24 08:46:14 62

原创 C++类与static

static修饰类中成员,表示类的共享数据1.static类成员C++primer里面说过,static类成员不像普通的类数据成员,static类数据成员独立于一切类对象处在。static类数据成员是与类关联的,但不与该类定义的对象有任何关系。即static不会像普通类数据成员一样每一个类对象都有一份,全部类对象是共享一个static类成员的。例如A类对象修改了static成员为1,那么B...

2019-09-24 08:24:50 21

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