c++
文章平均质量分 83
aidem_brown
这个作者很懒,什么都没留下…
展开
-
【解决问题】OpenCV(3.4.1) Error: Parsing error (xx.yaml(13): Incorrect indentation) in icvYMLParseValue
本博客运行环境为Ubuntu18.04 下 Kdevelop。运行slam的一个cpp文件时,错误描述如下:OpenCV(3.4.1) Error: Parsing error (KITTI00-02.yaml(13): Incorrect indentation) in icvYMLParseValue, file /home/hadoop/opencv-3.4.1/modules/corec/persistence_yml.cpp, line 532 terminate called after转载 2020-11-18 11:49:26 · 1919 阅读 · 0 评论 -
C#委托实现C++ Dll中的回调函数
from:https://blog.csdn.net/ferrycooper/article/details/63261771很多的Dll都是C和C++写的,那么如果C#想要调用Dll中的函数怎么办,尤其是Dll函数其中一个参数是函数指针的,即里面有回掉函数的用C#怎么实现?C中的回掉函数在C#中有中特殊的处理方式叫委托,即要实现的回掉函数委托给另一个和它返回值类型以及函数参数类型、数量一样的方法...转载 2018-04-10 20:14:51 · 463 阅读 · 0 评论 -
指针数组与数组指针详解
指针数组与数组指针详解1.什么是指针数组和数组指针?指针数组:指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节。数组指针:数组指针可以说成是”数组的指针”,首先这个变量是一个指针,其次,”数组”修饰这个指针,意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。 根据上...转载 2018-04-15 21:07:32 · 117 阅读 · 0 评论 -
指针函数与函数指针的区别
首先它们之间的定义: 1、指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针。类型标识符 *函数名(参数表)int *f(x,y);首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。表示:float *fun(); //不是 *float f...转载 2018-04-15 12:43:24 · 1218 阅读 · 1 评论 -
函数指针与回调函数详解
函数指针与回调函数详解1.什么是函数指针?函数(的)指针就是指针。这个指针存放一个函数的地址,而函数的名称就该函数的入口,即地址。这类似于数组名就是数组的首地址。我们可以通过反汇编直观的查看到函数名和函数地址的关系。080483c4 <rfun>: 80483c4: 55 push %ebp 80483c5: 8...转载 2018-04-15 11:45:40 · 266 阅读 · 0 评论 -
VS2010中 C++创建DLL图解
一、DLL的创建 创建项目: Win32->Win32项目,名称:MyDLL选择DLL (D) ->完成.1、新建头文件testdll.htestdll.h代码如下:#ifndef TestDll_H_#define TestDll_H_#ifdef MYLIBDLL#define MYLIBDLL extern "C" _declspec(dllimport) #else#defin...转载 2018-04-09 20:28:08 · 1218 阅读 · 0 评论 -
VS toolTip1控件的使用1
http://blog.csdn.net/Mr_Liyong/article/details/780141381、在工具栏找到“toolTip”控件后拖到窗体后,窗体下方会显示此控件则拖放成功。2、单击此控件右键选择属性:开始 修改属性。3、当添加一个TOOLTIP控件后,在WINFORM界面上所有的控件属性中都下面都有一项“ToolTip1 上的 ToolTip”, 设置此项可以调用TOOLTI...转载 2018-03-02 15:15:07 · 787 阅读 · 0 评论 -
[WinForm] VS2010发布、打包安装程序(超全超详细)
from:http://blog.csdn.net/y13156556538/article/details/555321841、 在vs2010 选择“新建项目”→“ 其他项目类型”→“ Visual Studio Installer→“安装项目”:(如果是在solution中添加,就直接solution -- 右键 -- 添加project)命名为:Setup1 。这是在VS2010中将有三个...转载 2018-03-09 11:26:12 · 1812 阅读 · 0 评论 -
C#调用C++类(以COM组件的形式)
如果想用C#调用C/C++写的函数,可以先将C/C++的函数写成dll文件,由C#用DllImport的方式来调用,但是这种方法无法调用C++写的类,如果想调用C++类,可以先把C++类封装成COM组件,再由C#来调用。方法如下(以VS2008英文版为例说明)一、新建一个Visual C++项目,类型为ATL Project,假设项目名为ComProject,直接点Finish即可。二、在Solu...转载 2018-03-08 19:43:15 · 1320 阅读 · 0 评论 -
MFC CPropertySheet 多页面切换 实例
为了能实现在同一个页面实现多个页面的切换效果。CPropertySheet要与CPropertyPage一起使用。首先 新建一个MFC工程--MFC AppWizard(exe), 取名Pagesheet, 选择Dialog based, 然后Finish.2. 在对话框资源中插入两个对话框IDD_DIALOG1、IDD_DIALOG2,作为两个子页。为转载 2017-08-28 20:16:07 · 806 阅读 · 1 评论 -
C++项目中的extern "C" {}
引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:123456789#ifdef __cplusplusextern "C" {#endif /*...*/ #ifdef __cplusplus}转载 2017-08-23 19:39:20 · 233 阅读 · 0 评论 -
Qt DLL总结-创建及调用QT的 DLL
目录Qt DLL总结【一】-链接库预备知识Qt DLL总结【二】-创建及调用QT的 DLL Qt DLL总结【三】-VS2008+Qt 使用QPluginLoader访问DLL开发环境:VS2008+Qt4.7.4 最近看了不少Qt的DLL例子,总结一下如何创建和调用QT 动态链接库。 先讲一下对QT动态链接库的调用方法,主要包括:转载 2017-08-23 19:11:42 · 580 阅读 · 0 评论 -
VS2010问题汇总
问题1:error C3872: "0xa0": 此字符不允许在标识符中使用error C3872: "0xa0": 此字符不允许在标识符中使用 或者 error C3872: '0xa0': this character is not allowed in an identifier解法:这是因为直接复制代码的问题。0xa0是十六进制数,换成十进制就是160,表示汉字的开始。解决办法:在...原创 2017-09-05 09:51:07 · 546 阅读 · 0 评论 -
DLL动态链接库的工作原理
"动态链接"这几字指明了DLLs是如何工作的。对于常规的函数库,链接器从中拷贝它需要的所有库函数,并把确切的函数地址传送给调用这些函数的程序。而对于DLLs,函数储存在一个独立的动态链接库文件中。在创建Windows程序时,链接过程并不把DLLs文件链接到程序上。直到程 序运行并调用一个DLLs中的函数时,该程序才要求这个函数的地址。此时Windows才在DLLs中寻找被调转载 2017-08-21 21:04:24 · 749 阅读 · 0 评论 -
c/c++标准预定义宏
C标准中的一些预定义宏昨天写代码时需要在代码获取当前编译时间,从而可动态地作为版本信息,因此用到了C标准中的一些预定义的宏。在此将C标准中定义的几个宏一并总结一下:__DATE__ 进行预处理的日期(“Mmm dd yyyy”形式的字符串文字,如May 27 2006) __FILE__ 代表当前源代码文件名的字符串文字 ,包含了详细路径,如G:/program/study转载 2017-08-24 20:43:16 · 297 阅读 · 0 评论 -
如何确定VS编译器版本--_MSC_VER || #if _MSC_VER > 1000 #pragma once #endif
如何确定VS编译器版本_MSC_VER是MSVC编译器的内置宏,定义了编译器的版本,_MSC_VER 值对应版本关系MSVC++ 11.0 _MSC_VER = 1700 (Visual Studio 2012) MSVC++ 10.0 _MSC_VER = 1600 (Visual Studio 2010) MSVC++ 9.0 _MSC_VER = 1500 (Vi转载 2017-08-24 20:29:27 · 2666 阅读 · 0 评论 -
#Pragma Pack(n)与内存分配 pragma pack(push,1)与#pragma pack(1)的区别
from:http://blog.csdn.net/mylinx/article/details/7007309 #pragma pack(n)解释一:每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。转载 2017-08-24 20:20:54 · 55840 阅读 · 3 评论 -
从static变量导出问题解析 __declspec(dllexport) 和 __declspec(dllimport)的作用
这段时间要把tinyxml从静态库弄成动态库,要用到__declspec(dllexport)和__declspec(dllimport)来导出dll和lib文件。终于弄明白了export和import的作用,下面从使用的角度来说明一下他们的功能。 首先要知道,头文件是C++的接口文件,不仅本工程需要使用头文件来进行编译,给其他工程提供dll的时候也要提供此dll的头文件才能让其他人通过转载 2017-08-21 20:48:54 · 265 阅读 · 0 评论 -
句柄与指针的区别
句柄实际上是一种指向某种资源的指针,但与指针又有所不同:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),平时你只是在调用API函数时利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行...转载 2018-04-16 22:19:36 · 467 阅读 · 0 评论 -
DLL导出类和导出函数
from:https://blog.csdn.net/goodluckmt/article/details/526912971、动态库DLL中的类或者函数有时候要被其他的库调用,因此需要被其他库调用的类或者函数需要进行导出。2、首先编写需要导出的DLL,新建一个工程设置应用程序类型为DLL3、类的代码如下头文件[html] view plain copy#pragma once #define ...转载 2018-04-10 20:20:36 · 1507 阅读 · 0 评论 -
从离散值中把值相近的放在一起
//30根细条得到30个长度值,选择出现值相近且出现次数最多的,算其均值作为输出#include <iostream>using namespace std;int main(){ double dRawdata[5] = {1.1,1.2,1.3,2.5,3.2};//先升序排序 double dSort[5][5] = {0}; double* p = dRawd...原创 2019-05-24 09:06:42 · 141 阅读 · 0 评论 -
转 C++宏定义详解
来自:传送门C++宏定义详解一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 ...转载 2019-05-13 16:33:25 · 247 阅读 · 0 评论 -
深入理解extern用法
from:https://blog.csdn.net/z702143700/article/details/46805241一、 extern做变量声明l 声明extern关键字的全局变量和函数可以使得它们能够跨文件被访问。我们一般把所有的全局变量和全局函数的实现都放在一个*.cpp文件里面,然后用一个同名的*.h文件包含所有的函数和变量的声明。如:[cpp] view plain copy/*...转载 2018-05-08 11:56:49 · 8069 阅读 · 2 评论 -
C++中static关键字作用总结
from:https://www.cnblogs.com/songdanzju/p/7422380.html1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是main.c。//a.cchar a = 'A'; // globa...转载 2018-05-08 11:21:12 · 128 阅读 · 0 评论 -
C++中基类的析构函数为什么要用virtual虚析构函数
from:https://blog.csdn.net/iicy266/article/details/11906457知识背景 要弄明白这个问题,首先要了解下C++中的动态绑定。 关于动态绑定的讲解,请参阅: C++中的动态类型与动态绑定、虚函数、多态实现正题 直接的讲,C++中基类采用virtual虚析构函数是为了防止内存泄漏。具体地说,如果派...转载 2018-05-08 11:09:27 · 123 阅读 · 0 评论 -
深入理解CRITICAL_SECTION
摘要临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。本文深入研究临界区的原理,以揭示在查找死锁和确认性能问题过程中的有用信息。它还包含一个便利的实用工具程序,可以显示所有临界区及其当前状态。在我们许多年的编程实践中,对于 Win32 临界区没有受到非常多...转载 2018-05-07 14:49:08 · 497 阅读 · 0 评论 -
理解C++中拷贝构造函数
拷贝构造函数的功能是用一个已有的对象来初始化一个被创建的同样对象,是一种特殊的构造函数,具有一般构造函数的所有特性,当创建一个新对象的时候系统会自动调用它;其形参是本类对象的引用,它的特殊功能是将参数代表的对象逐域拷贝到新创建的对象中。 用户可以根据实际需要定义特定的拷贝构造函数,以实现同类对象之间数据成员的传递。如果用户没有声明类的拷贝构造函数,系统会自动生成一个默认的拷贝构造函数,它的功能就是...转载 2018-05-06 23:01:20 · 175 阅读 · 0 评论 -
深入理解C++中的explicit关键字
深入理解C++中的explicit关键字kezunhai@gmail.comhttp://blog.csdn.net/kezunhai C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)。 ...转载 2018-05-06 22:48:38 · 154 阅读 · 0 评论 -
C++ 虚函数经典深入解析
from:https://blog.csdn.net/gggg_ggg/article/details/45915505C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R...转载 2018-05-06 20:56:38 · 151 阅读 · 0 评论 -
C++ virtual 析构函数
copy自:http://zxjgoodboy.blog.sohu.com/61482463.html在此基础上稍作修改 C++中虚析构函数的作用我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:[cpp] view plain copy #include <iostream> using name...转载 2018-05-05 22:21:35 · 479 阅读 · 0 评论 -
C++类构造函数初始化列表及初始化成员变量的误区
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:[cpp] view plain copyclass CExample { public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值...转载 2018-05-05 21:40:13 · 750 阅读 · 0 评论 -
C++中相对路径与绝对路径以及斜杠与反斜杠的区别 及 处理代码
转载自:http://blog.csdn.net/sszgg2006/article/details/8447176文件路径正斜杠和反斜杠正斜杠,又称左斜杠,符号是"/";反斜杠,也称右斜杠,符号是"\"。文件路径的表示可以分为绝对路径和相对路径:1、绝对路径表示相对容易,例如pDummyFile =fopen("D:\\vctest\\glTexture\\texture\\dummy.bmp"...转载 2018-05-11 11:01:30 · 683 阅读 · 0 评论 -
C++中的friend详细解析
C++中的友元机制允许类的非公有成员被一个类或者函数访问,友元按类型分为三种:普通非类成员函数作为友元,类的成员函数作为友元,类作为友元。友元包括友元的声明以及友元的定义。友元的声明默认为了extern,就是说友元类或者友元函数的作用域已经扩展到了包含该类定义的作用域,所以即便我们在类的内部定义友元函数也是没有关系的。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。...转载 2018-05-09 20:04:03 · 325 阅读 · 0 评论 -
如何有效解决C与C++的相互调用问题
from:https://blog.csdn.net/gobitan/article/details/1532769 在实际工作中可能经常要进行C和C++的混合编程,C++调用C语言的代码通常都比较容易,但也有一些细节需要注意。C要调用C++的代码就略为麻烦一些,因为C不支持面向对象的特征。一、C++调用C首先我们来看一下C++调用C语言的代码。要让你的C代码既能被C代码又能被C++调用虽说容易,...转载 2018-05-09 19:20:56 · 245 阅读 · 0 评论 -
C++中模板使用详解
转自:http://www.360doc.com/content/09/0403/17/799_3011262.shtml1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.i...转载 2018-04-22 22:23:24 · 149 阅读 · 0 评论 -
C++ Vector 汇总
C++ vector erase函数最近使用了顺序容器的删除元素操作,特此记录下该函数的注意事项。在C++primer中对c.erase(p) 这样解释的: c.erase(p) 删除迭代器p所指向的元素,返回一个指向被删元素之后元素的迭代器,若p指向尾元素,则返回尾后迭代器,若p是尾后迭代器,则会产生未定义行为。 这个函数我在使用的过程中发现有那么一点小小的注意事项如果...转载 2018-04-22 18:31:39 · 188 阅读 · 0 评论 -
互斥锁和读写锁的区别
原文地址:http://blog.csdn.NET/u012884354/article/details/46691761相交进程之间的关系主要有两种,同步与互斥。所谓互斥,是指散布在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。所谓同步,是指散布在不同进程之转载 2017-07-31 21:52:57 · 1446 阅读 · 0 评论 -
多线程的那点儿事(之读写锁)
在编写多线程的时候,有一种情况是十分常见的。那就是,有些公共数据修改的机会比较少。相比较改写,它们读的机会反而高的多。通常而言,在读的过程中,往往伴随着查找的操作,中间耗时很长。给这种代码段加锁,会极大地降低我们程序的效率。那么有没有一种方法,可以专门处理这种多读少写的情况呢? 有,那就是读写锁。 (1)首先,我们定义一下基本的数据结构。[cpp转载 2017-07-31 21:45:02 · 415 阅读 · 0 评论 -
C/C++回调函数
对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什转载 2014-09-29 20:37:55 · 538 阅读 · 0 评论 -
在C++中用虚函数的作用是什么? 为什么要用到虚函数?
虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形转载 2014-09-25 20:11:33 · 590 阅读 · 0 评论