C++
JackPai
理清楚、说清楚
展开
-
Linux C/C++ 程序崩溃宕机调试
C++ 崩溃调试原创 2022-04-05 10:53:55 · 1363 阅读 · 0 评论 -
编译C文件出现“在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”? ”如何解决
解决方式:1) 在解决方案资源管理器中,右击相应的.c/.cpp文件,点击“属性”;2) 在左侧配置属性中,点开“C/C++”,单击“预编译头”;3) 更改右侧第一行的“创建/使用预编译头”,把选项从“使用预编译头(/Yu)”改成“不使用预编译头”;4) 注:每一个报错的.cpp都要如此更改....原创 2019-11-30 22:53:36 · 649 阅读 · 0 评论 -
在没有项目的时候如何提高C++的编程能力
1、最近由于市场的原因,我们的项目没有单了,然后就感觉突然有点闲下来,探讨如何进一步的去学习2、老大说重构已有的代码,就是以前的项目觉得逻辑还是可以用的,但是比较难阅读,设计模式不够好,或者有影响效率的,都可以去重构,重构就可以去发现问题,知道自己的不足3、放下的模式实际上是比较爽的,因为对比一下那种版本重复更新的互联网公司,这个是可以有更多的时间去整理自己的代码,有时候老代码的bug还没...原创 2019-10-20 11:21:45 · 736 阅读 · 1 评论 -
怎样理解阻塞非阻塞与同步异步的区别?
老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。3 老张把响水壶放到火上,立等水开。(异步阻塞)老张觉得...转载 2018-04-04 10:45:37 · 124 阅读 · 0 评论 -
C++ dll调用-动态
C++ dll调用-动态转载 2017-09-13 19:17:27 · 335 阅读 · 0 评论 -
c++中return this和return *this的区别
c++中return this和return *this的区别原创 2017-06-27 10:14:36 · 9411 阅读 · 0 评论 -
C++或者C#无限循环的实现方式
C++或者C#无限循环的实现方式原创 2017-07-01 12:34:17 · 1916 阅读 · 2 评论 -
函数后面加PURE
函数后面加PURE原创 2017-06-20 16:52:57 · 1122 阅读 · 0 评论 -
C++ typedef中间有逗号
C++ typedef中间有逗号原创 2017-06-20 14:36:42 · 1525 阅读 · 1 评论 -
__declspec(novtable)的作用
__declspec(novtable)的作用原创 2017-06-29 12:01:46 · 934 阅读 · 0 评论 -
C++中#define中的#与##作用和区别
C++中#define中的#与##作用和区别原创 2017-05-29 14:04:26 · 1599 阅读 · 0 评论 -
(*p)++和*(p++)和*p++有什么区别
(*p)++和*(p++)和*p++有什么区别原创 2017-04-23 12:50:20 · 3367 阅读 · 0 评论 -
各大公司Windows下C++开发职位要求
各大公司Windows下C++开发职位要求转载 2017-05-23 14:09:05 · 2604 阅读 · 0 评论 -
关于..\相对路径拼接
关于..\相对路径拼接原创 2017-09-27 10:07:25 · 952 阅读 · 0 评论 -
FALSE/TRUE与false/true的区别
FALSE/TRUE与false/true的区别原创 2017-10-10 19:42:01 · 2996 阅读 · 0 评论 -
STL的string判断为空字符串
STL的string判断为空字符串原创 2017-12-11 14:16:04 · 3923 阅读 · 0 评论 -
VS2017编译Teamtalk的Windows客户端
这个其实和VS2015版本编译是一样的,可以参照下面的这篇文章https://blog.csdn.net/qtstar/article/details/54732581<<VS2015编译Teamtalk的Windows客户端>>我安装的是2017的这个版本,基本上和上面的这篇文章遇到的错误是一样的大家按照博主的步骤一步一步修改就得了但是我遇到的一个问题...原创 2018-10-14 10:48:18 · 889 阅读 · 5 评论 -
gdiPlus的imag::fromFile函数调用返回为空
gdiPlus需要初始化,在调用imag::fromFile()之前需要做如下的初始化才行:GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);...原创 2018-08-12 17:04:39 · 1256 阅读 · 0 评论 -
给新人C++的学习路线
今天有新人要求推荐C++的学习路线,这篇文章挺好的随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的...转载 2018-08-05 12:24:52 · 2126 阅读 · 0 评论 -
C++的某一个变量已经初始化但是使用前值被修改
情况:今天在调试一个项目的时候使用一个变量值已经初始化过但是在调试的过程中等准备赋值使用的时候,却被修改为不是初始化的值原因:由于项目改版,使用的还是以前的代码,但是设置了一些开关和一些宏的变化,数组使用宏作为大小,由于改变,导致数组初始化访问越界,影响了之前那个变量的值。调试方法:1、使用条件断点,值变化就停下2、注释代码,缩小范围查找...原创 2018-07-05 21:45:11 · 383 阅读 · 0 评论 -
STL的list,vector,deque,map,set区别、联系和使用场景
版权声明:本文某些内容来源于互联网,经过自己整理、编辑和总结成文,谢谢csdn,谢谢 googlevector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vec...转载 2018-05-21 19:44:01 · 470 阅读 · 0 评论 -
C++的命名规则建议收集
1.- 变量应该是尽可能的望文知意好的变量: daysDateRange, flightNumber, carColor.坏的变量: days, dRange, temp, data, aux…在我们的日常工作中,有很大数量的开发人员喜欢使用短的变量名,而不是有含义的变量名。这主要是因为我们大学教科书的那些示例所造成的,人都是先入为主,所以,教科书中的那些很抽象,带着演示的变量命名影响了我们一代又...转载 2018-04-28 13:50:35 · 197 阅读 · 0 评论 -
析构函数是否必须为虚函数?
面试回来收集的答案析构函数可以为虚函数,也可以不为虚函数。(更多的时候不为虚函数)设计析构函数为虚函数,主要是考虑到继承。当A为基类,B为A的继承类,考虑如下情况:A *p = new B();.....delete p;如果此时A的析构函数不是虚函数,那么在delete p的时候就会调用A的析构函数,而不会调用B的析构函数,这样就会造成B的资源没有释放。而如果A的析构函数为虚函数,那么就会调用B...原创 2018-04-20 22:53:44 · 1528 阅读 · 0 评论 -
面试常用冒泡排序和二分查找
面试常用的两个算法题希望对大家有帮助#include "stdafx.h"#include <stdio.h>#include "string"void fun_swap(int &a, int &b);bool fun_array(int *p, int i32Size);int Binary_Search(int *a, int n, int key);int _...原创 2018-04-22 10:26:06 · 357 阅读 · 1 评论 -
C++Primer+plus第六版的笔记
C++Primer+plus第六版的笔记原创 2018-03-19 21:29:38 · 803 阅读 · 0 评论 -
C++ Primer_4th第六章学习笔记
C++ Primer_4th第六章学习笔记原创 2017-03-26 14:09:12 · 351 阅读 · 0 评论 -
C++ Primer_4th学习笔记(9)- 指针操作
C++ Primer_4th学习笔记(9)- 指针操作原创 2017-03-14 23:31:50 · 281 阅读 · 0 评论 -
C++ Primer_4th学习笔记(8)- 数组和指针
C++ Primer_4th学习笔记(7)- 数组和指针原创 2017-03-13 23:32:22 · 251 阅读 · 0 评论 -
VS2015 密匙
试用期满了之后输入有效:Visual Studio Professional 2015简体中文版(专业版)KEY:HMGNV-WCYXV-X7G9W-YCX63-B98R2 Visual Studio Enterprise 2015简体中文版(企业版)KEY:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV原创 2016-06-08 19:14:40 · 973 阅读 · 0 评论 -
VC6.0如何插入条件断点
1、VC6.0中按Ctrl+B可以弹出断点设置对话框;或者打开菜单的编辑->断点 2、在“分隔符在:”下面的编辑框右边的三角箭头点击,获取当前的行号 3、点击Condition,弹出Breakpoint Condition对话框中输入i==(你需要的值),再点击确定 4、再按F5运行程序,就会在设置的条件满足时停止。原创 2016-04-20 21:11:58 · 1215 阅读 · 0 评论 -
VC++的多字符集和unicode字符集转换大全(CString转char*等)
CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换_T的意思是通知编译器,自行进行字符串的多字节/Unicode转换。而L表示,该字符串为Unicode版本。http://www.blogjava.net/neumqp/archive/2006/03/09/34504.htmlhttp://blog.csdn.net/sl159/arti转载 2016-04-26 23:58:42 · 5209 阅读 · 0 评论 -
const 放在函数后表示的意思
const 放在函数后表示这个函数是常成员函数, 常成员函数是不能改变成员变量值的函数。const 限定符,它把一个对象转换成一个常量。举例:为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明:class Point{public:int GetX() const;int GetY() const;void SetPt (i转载 2016-04-26 22:29:06 · 495 阅读 · 0 评论 -
const的用法及使用的优点
const用法主要是防止定义的对象再次被修改,定义对象变量时要初始化变量 下面我就介绍一下几种常见的用法1.用于定义常量变量,这样这个变量在后面就不可以再被修改 const int Val = 10; //Val = 20; //错误,不可被修改 2. 保护传参时参数不被修改,如果使用引用传递参数或按地址传递参数给一个函数,在这个函数里这转载 2016-04-26 22:27:49 · 2515 阅读 · 0 评论 -
C++多线程操作(火车售票系统线程同步)
#include //1.用到了WinAPI的函数#include //2.用到了C++标准输入输出流函数using namespace std;DWORD WINAPI Fun1Proc(LPVOID lpParameter);转载 2016-02-29 00:01:50 · 4279 阅读 · 2 评论 -
C++的vector容器用法
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用vector,必须在你的头文件中包含下面的代码:#include vector属于std命名域的,因此需要通过命名转载 2016-03-22 23:23:11 · 295 阅读 · 0 评论 -
DLL的概念、分类、调用,DLL如何导出函数、变量和类
1、 DLL的概念DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数、变量或类。这些可以直接拿来使用。静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个转载 2016-03-08 22:35:04 · 1405 阅读 · 0 评论 -
C++接口类的函数为什么等于0 ,如 classA()=0;
class ClassA(){ public: ClassA() = 0; void func() { } protected: int funB() { return 3; }}等于0,表示为纯虚函数。拥有纯虚函数的类是抽象类,抽象类一般作为基类,不能用来定义对象。转载 2015-12-29 23:55:37 · 2845 阅读 · 0 评论 -
C++接口类实现的简单例子(1)
接口是一个没有被实现的特殊的类,它是一系列操作的集合,我们可以把它看作是与其他对象通讯的协议。C++中没有提供类似interface这样的关键 字来定义接口,但是Mircrosoft c++中提供了__declspec(novtable)来修饰一个类,来表示该类没有虚函数表,也就是虚函数都是纯虚的。所以利用它我们依然可以定义一 个接口。代码例子如下: #include usin转载 2015-12-29 23:44:24 · 1400 阅读 · 0 评论 -
基于TCP的Sockets编程
Win32 下使用SOCKET API函数进行网络开发的基本流程与方法1、初始化和释放套接字库2、创建套接字句柄3、绑定地址信息4、连接5、数据收发6、关闭套接字下面介绍基于TCP的Sockets编程TCP服务器#include#include#include#pragma comment(lib,"WS2_32.lib")int main原创 2015-11-19 23:46:38 · 602 阅读 · 0 评论 -
C++位域
位域有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字转载 2016-08-18 11:06:07 · 449 阅读 · 0 评论