![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
文章平均质量分 50
云中飞鸿--**峰
这个作者很懒,什么都没留下…
展开
-
.manifest是什么文件
选择Use MFC in share DLL会用到MFCxx.DLL. MFC80.dll, 即对应VS2005的。MFC80U.DLL,即对应VS2005的Unicode版本。选择MD/MDd则会用到下面的DLL。MSVCR80.dll,即VS2005下的C RunTime库,提供基本的C函数。MSVCP80.dll, 即VS2005年的C++函数库,如果有调用之类的文件,则会使用到此DLL。编辑。原创 2024-08-08 13:31:00 · 985 阅读 · 0 评论 -
使用manifest管理应用程序的依赖文件
我们在开发应用程序时,一般会引入一些第三方库,通常情况下,我们是把这些第三方依赖文件放到应用程序所处目录,这样应用程序启动时就能正确找到相关依赖文件。但当依赖文件比较多,我们希望对依赖的文件进行归类,放置到不同的目录下以便管理,这个时候应用程序的manifest就派上用场了。转载 2024-08-08 10:33:34 · 30 阅读 · 0 评论 -
C++ 指针与作用域
4、返回原来讨论的问题,既然成员函数存放在公用函数代码段里面,而在源码1中,指针p 是保存了在花括号里面的对象a的地址的,对象a销毁了,我们不能使用变量a,但是它的地址是不会改变的,编译器只是销毁了对象a这个变量,并没有销毁对象a原来所在存储区域(当然是在栈里面的存储区域)中的成员变量和成员函数,所以,这里得到的指针p,还是指向花括号中定义的对象a的首地址,这就是ptr就是原来的对象a的this指针,当使用p->Func();而成员函数的存储方式,是从物理的角度而言的,二者是不矛盾的。转载 2024-04-17 17:26:26 · 48 阅读 · 0 评论 -
C++中不同变量(内置/类 类型) 的初始化规则
类类型变量是通过构造函数进行初始化的,不论类类型变量在哪里(全局或者局部)定义,该类类型变量的构造函数(默认构造函数或者指定的带参构造函数)总会被调用。至于系统是否帮我们隐式初始化变量,以及为变量赋予一个怎样的初始值,这要取决于该 变量的类型 以及我们在 何处定义的该变量。现在我们知道,构造函数的初始化是发生在初始化列表中的,那么,对于初始化列表中没有显示进行初始化的内置类型变量来说,其初始化规则就与上述内置类型变量的规则相同了。//构造函数中的初始化发生在构造函数的初始化列表中。//而非构造函数体中。原创 2024-04-12 17:49:54 · 378 阅读 · 0 评论 -
GetSystemTimes:获取CPU占用率(WIN API)
GetSystemTimes获得系统(自开机以来)处于Kernel状态下面的CPU时间,以及系统处于User状态下的时间,以及Idle的时间;原文链接:https://blog.csdn.net/qq_28742901/article/details/104960653。调用GetLastError函数可获得更多的错误信息。如果函数失败,返回值为false。如果函数成功,返回值为true。,就可以知道在一段时间内。原创 2024-03-31 21:03:59 · 385 阅读 · 0 评论 -
C语言自定义数据类型:用typedef声明新类型名
除了可以直接使用 C 提供的标准类型名(如 int,char,float, double 和 long 等)和程序编写者自己声明的结构体、共用体、枚举类型外,还可以用 typedef 指定新的类型名来代替已有的类型名。并不是用 “ Num[10] ” 去代替 “ int ”,而是采用如同定义变量的方法那样先生成一个类型名(就是前面介绍过的将原来的变量名换成类型名),然后用它去定义变量。简单地说,就是按定义变量的方式,把变量名换上新类型名,并且在最前面加 typedef,就声明了新类型名代表原来的类型。原创 2024-03-17 17:35:34 · 900 阅读 · 0 评论 -
DeleteFile(szFilePath)失败,之后再对文件操作,造成崩溃
1.如果不再对szFilePath1文件进行操作 + DeleteFile()函数执行失败=》也不会造成 软体崩溃!2.如果后续需要对szFilePath1文件进行操作 + DeleteFile()函数执行失败=》就会。所以,如果后续需要使用,必须要对DeleteFile()函数 返回值,进行检查!原创 2024-03-14 17:59:50 · 226 阅读 · 0 评论 -
左移/右移:都是指 二进制 移位
需要先将 目标数值,转换为“二进制”后,再进行移位操作!移位之后,再转换回之前的的进制数!原创 2024-02-29 10:12:13 · 160 阅读 · 0 评论 -
字符和数字的相互转换,数字和字符串的相互转换
此程序先输出a[0],即程序中的1,i控制循环次数,控制在字符串的长度,其次用算式解决字符串1357变成数字的输出,进行第一次循环,先输出1,而num=0,所以式子变成010+‘3’-‘0’=3,即输出13,进行第二次循环,式子变成310+‘5’-‘0’=35,即输出135,以此循环将字符串a变为数字。原文链接:https://blog.csdn.net/weixin_55661707/article/details/114798935。@c++[TOC]字符和数字之间的相互转换,数字和字符串的相互转换。原创 2024-02-22 15:39:36 · 510 阅读 · 0 评论 -
指针和引用的区别
实际仍是操作“变量本身”:对于局部变量(不管是静态/非静态)而言,其。③ 不能建立引用数组,可以建立数组的引用。② 一个引用不能声明为两个变量的别名。变量的作用域:是变量名可以被使用的所有。2. 引用:是看变量的“生存期” +指向变量,是变量的地址,只要在变量的。变量的生命周期:指变量可以被使用的。生存期:整个源程序;(不是生存期)都在函数内,内,指针就一样可以存在!可以返回该局部变量的指针。等同于对变量本身的操作。,但是引用同样不可以)本身不是一种数据类型。原创 2024-02-20 11:16:28 · 239 阅读 · 0 评论 -
常量指针 和 指针常量
如果关键字 const 出现在 * 号左边,表示被指物是常量,侧重点是常量,值不可变;如果出现在 * 号右边,表示指针自身是常量,侧重点是指针,地址不可变;如果出现在 * 号两边,表示被指物和指针都是常量,地址和值都不可变。该指针指向一个常量,常量的值不可变,不可以通过该指针修改其值,但是该指针可以指向其他常量。(指针地址可以变,值不能变)该指针只能指向某个常量,不可再指向其他常量。(指针地址不可变,值可变。(指针地址不可变,值不可变)//注意:两种写法的意义相同,都是常量指针。//错误,不可修改常量值。原创 2024-02-20 10:44:02 · 138 阅读 · 0 评论 -
*&s是什么意思
例如:readRawData( (char *)& rowCount, sizeof(qint16));&s是地址,*是指针,*&s是指指向&s地址的指针;j = *&s 就是 j = s的意思。原创 2024-02-06 11:05:19 · 176 阅读 · 0 评论 -
c++ 4种类型转换
其中, reinterpret_cast后的尖括号中的type-id类型必须是一个指针、引用、算术类型、函数指针或者成员指针。完成,适用于具有继承关系的类或指针类型之间的转换。动态转换会进行类型检查,如果类型无法转换,则返回空指针(对于指针类型)或抛出bad_cast异常(对于引用类型)。向上转型是指:子类对象指针/引用 -> 父类指针/引用(不需要转换,赋值兼容规则),适用于具有继承关系的类或者指针类型之间的转换。父类对象指针/引用 ->子类指针/引用(用dynamic_cast转型是安全的)原创 2024-01-24 11:12:21 · 1643 阅读 · 0 评论 -
__declspec关键字:导入 导出
4.其他文件可以包含Export.h,从而进行导入导出。在需要导入/导出的(类名前、class后):添加APPDLL_API即可。一、declspec 是 Declaration Specification 可以简单理解为。1. __declspec(dllimport)意思是被修饰函数要从其他dll中。)中,是否define定义了APPDLL_EXPORT,从而确定执行哪条语句。2. __declspec(dllexport)意思是被修饰函数是要。这个类就是要进行导入/导入的类。原创 2023-10-18 10:45:16 · 397 阅读 · 0 评论 -
__declspec(dllexport)
不使用__declspec(dllimport)也能正确编译代码,但使用__declspec(dllimport)使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是因为它可以确定函数是否存在于DLL中,这使得编译器可以生成跳过间接寻址级别的代码,而这些代码通常会出现在跨DLL边界的函数调用中。__declspec(dllexport)用于Windows中的动态库中,声明导出函数、类、对象等供外面调用,省略给出.def文件。他们是将DLL内部的类与函数以及数据导出与导入时使用的。转载 2023-10-12 14:07:05 · 161 阅读 · 0 评论 -
同名的 const 和 非const函数 重载
https://www.cnblogs.com/stemon/p/3395635.htmlC++:const用于函数重载_c++ const 重载_「已注销」的博客-CSDN博客https://www.cnblogs.com/meituanqishoualin/p/11607564.htmlC++中const用于函数重载的用法_函数重载区分const吗?_alanfengliu的博客-CSDN博客原创 2023-08-16 17:57:02 · 76 阅读 · 0 评论 -
常量对象 只能调用 常成员函数
我们可以通过常量指针与普通指针来重载函数由于常量指针不能向普通指针转换,因此我们不能向参数为普通指针的函数传入常量指针。故我们不能通过const对象调用普通成员函数。普通指针能转换为常量指针。故普通对象能调用普通函数也能调用常函数。原创 2023-08-16 15:41:39 · 1618 阅读 · 0 评论 -
C++ explicit 关键字
explicit Shape(const Shape& shape) : Radius(shape.Radius) {} //圆--构造方法2。Shape(const Shape& shape) : Radius(shape.Radius) {} //圆--方法2。explicit Shape(float r) : Radius(r) {} //圆--构造方法1。Shape(float r) : Radius(r) {} //圆--方法1。//同理,因为方法2也。原创 2023-07-08 12:26:27 · 182 阅读 · 0 评论 -
当数组作为函数的参数传递时,该数组自动退化为同类型的指针
sizeof(p),p 为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。运算符sizeof 可以计算出数组的容量(字节数)。,除非在申请内存时记住它。原创 2023-03-10 11:34:07 · 63 阅读 · 0 评论 -
析构函数调用顺序 和 构造函数调用顺序 相反
派生类本身的析构函数=》对象成员析构函数=》基类析构函数(与构造顺序正好相反)基类构造函数=》对象成员构造函数=》派生类本身的构造函数。原创 2023-03-10 13:39:05 · 223 阅读 · 0 评论 -
只能用初始化列表,而不能使用赋值的情况 一般有以下4种
只能用初始化列表,而不能使用赋值的情况 一般有以下4种原创 2023-03-10 18:01:09 · 618 阅读 · 0 评论 -
C++11新特性:右值引用、移动构造函数、移动赋值运算符
右值引用 有一个重要的性质:只能绑定到一个将要销毁的对象。因此,可以将一个右值引用的资源“移动”到另一个对象中。调用移动构造函数的情况:只有当用一个右值,或者将亡值初始化另一个对象的时候,才会调用移动构造函数。1.2 右值:一切常数、字符、字符串,都是“右值”!说明:遇到这种情况,编译器会很智能的帮你选择类内合适的构造函数去执行,同样,右值引用 也是一个对象的别名而已。移动构造函数:只是对临时对象(右值)的内存,“变更所有权”。当传入“临时变量(右值)”时,编译器会调用“移动构造函数”。原创 2023-03-15 15:43:08 · 300 阅读 · 0 评论 -
动态内存,未释放,就return了,会造成内存泄漏,如果避免这种结果?
如果为空指针,再进行return。在return的时候,2.可以使用智能指针。原创 2023-03-15 15:46:59 · 239 阅读 · 0 评论 -
如何调用 “static静态方法”?
调用静态方法,使用“类名::静态方法名称”原创 2023-03-09 18:04:55 · 186 阅读 · 0 评论 -
调用拷贝构造函数、还是调用 赋值函数?
拷贝构造函数、 赋值函数原创 2023-03-09 13:43:56 · 72 阅读 · 0 评论 -
深拷贝、浅拷贝
深拷贝、浅拷贝原创 2023-03-08 18:05:42 · 111 阅读 · 0 评论 -
C++11新特性
C++11新特性原创 2023-03-08 14:47:00 · 340 阅读 · 0 评论 -
右值
右值原创 2023-03-08 14:04:00 · 48 阅读 · 0 评论 -
Unicode(宽字节)、ANSI(多字节)
Unicode(宽字节)、ANSI(多字节)原创 2023-03-02 15:18:48 · 549 阅读 · 0 评论 -
数组(n维)作为 函数参数 传递以后,不能通过sizeof求维度了!只能通过 参数,将维度传入
数组(n维)作为 函数参数 传递以后,不能通过sizeof求维度了!只能通过 参数,将维度传入原创 2023-02-23 16:01:21 · 83 阅读 · 0 评论 -
没有为“指针”分配内存空间,而去赋值,将会发生异常
没有为“指针”分配内存空间,而去赋值,将会发生异常原创 2023-02-17 16:08:58 · 610 阅读 · 0 评论 -
用宏定义写出swap(x,y)
用宏定义写出swap(x,y)原创 2023-02-17 14:02:06 · 351 阅读 · 0 评论 -
C++/C 语言没有办法知道指针所指的内存容量,除非在申请内存时记住它
C++/C 语言没有办法知道指针所指的内存容量,除非在申请内存时记住它原创 2023-02-17 13:24:06 · 479 阅读 · 0 评论 -
c++在哪些情况下,只能使用初始化列表 而不能用赋值
只能使用初始化列表 而不能用赋值原创 2023-02-16 17:28:13 · 555 阅读 · 0 评论 -
C++ 中是用来修饰:内置类型变量、自定义对象、成员函数、返回值、函数参数
C++ 中是用来修饰:内置类型变量、自定义对象、成员函数、返回值、函数参数原创 2023-02-16 15:10:35 · 353 阅读 · 0 评论 -
虚函数表--多态,动态绑定
虚函数,虚表,虚表指针,动态绑定,多态原创 2023-02-16 13:09:15 · 330 阅读 · 0 评论 -
数组指针、还是指针数组,有什么区别?
数组指针、还是指针数组原创 2023-02-15 17:09:48 · 252 阅读 · 0 评论 -
写一个函数,完成内存之间的拷贝
内存之间的拷贝原创 2023-02-14 17:22:31 · 667 阅读 · 0 评论 -
C++如何确定:该调用基类的虚函数,还是派生类的?
C++如何确定:该调用基类的虚函数,还是派生类的?原创 2023-02-13 18:13:04 · 670 阅读 · 0 评论 -
C++解析函数:返回char *p与char p[]类型的区别
返回char *p与char p[]类型的区别转载 2023-02-10 17:56:36 · 1321 阅读 · 0 评论