C++学习
文章平均质量分 75
leolewin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
VS2010中编译openssl的步骤和使用设置
VS2010中编译openssl的步骤和使用设置 2013-11-04 14:15:36| 分类: openssl|举报|字号 订阅 下载LOFTER客户端一.VS2010中编译openssl的步骤版本号:openssl-1.0.1e转载 2015-07-28 11:48:39 · 3667 阅读 · 0 评论 -
static的作用详解
1、什么是static?1) static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。2) static 被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间(静态存储区生存周期长)。3) static 它会把变量的可见范围限制在编译单元中,使它成为一个内部连接,它的反义词为:extern。4) 在类中,静态成员可以实现多个对象之间的数据共享,并且使用静转载 2015-09-01 22:10:28 · 558 阅读 · 0 评论 -
[C++][编程风格]C++命名规则
C++命名规范常见命名法: 匈牙利命名法:基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。 Camel命名法:即骆驼式命名法,原因是采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏。Camel命名法有两种形式:混合使用大小写字母和单词之间加下划线转载 2015-09-02 17:27:44 · 390 阅读 · 0 评论 -
程序员练级之路
建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节。一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。注:你也许会很奇怪为什么下面的东西很偏Unix/Linux,这是因为我觉转载 2015-09-09 15:27:18 · 939 阅读 · 0 评论 -
PE文件结构
1.M_DOS头部结构体:IMAGE_DOS_HEADER STRUCT { +00h WORD e_magic // Magic DOS signature MZ(4Dh 5Ah) DOS可执行文件标记 +02h WORD e_cblp // Bytes on last page of file +04h WORD e_cp // Pages in file +0转载 2015-09-10 12:39:23 · 1935 阅读 · 0 评论 -
C++引用浅析以及引用和指针的区别
引用(reference)是c++的初学者比较容易迷惑的概念。下面我们比较详细地讨论引用。 一、引用的概念引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。例如: Point pt1(10,10);Point &pt2=pt1; 定义了pt2为pt1的引用。通过这样的定义,pt1和pt2表示同一对象。需要特别强调的是引用并不产生对象的副本,原创 2015-09-10 23:06:44 · 405 阅读 · 0 评论 -
使用OpenSSL API 进行安全编程
搜索 developerWorks developerWorks 中国技术主题Linux文档库使用 OpenSSL API 进行安全编程创建基本的安全连接和非安全连接学习如何使用 OpenSSL —— 用于安全通信的最著名的开放库 —— 的 API 有些强人所难,因为其文档并不完全。您可以通过本文中的提示补充这方面的知识,并驾驭该 API。在建立基本的连接之后,就可以查看如何使用 OpenSSL原创 2015-09-14 10:15:40 · 904 阅读 · 0 评论 -
c++引用与指针的区别(着重理解)
★ 相同点: 1. 都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。 ★ 区别: 1. 指针是一个实体,而引用仅是个别名; 2. 引用使用时无需解引用(*),指针需要解引用; 3. 引用只能在定义时被初始化一次,之后不可变;指针可变; 引用“从一而终” ^_^转载 2015-09-17 16:39:44 · 498 阅读 · 0 评论 -
Windows消息机制概述
消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及转载 2015-12-09 23:49:35 · 572 阅读 · 0 评论 -
AfxBeginThread和CreateThread具体区别
具体说来,CreateThread这个 函数是windows提供给用户的 API函数,是SDK的标准形式,在使用的过程中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁的因素,用起来比较繁琐一些,初学的人在用到的时候可能会产生不可预料的错误,建议多使用AfxBeginThread,是编译器对原来的CreateThread函数的封装,用与MFC编程(当然,只要修改了项目属性原创 2015-11-22 23:10:56 · 587 阅读 · 0 评论 -
Windows(MFC)消息映射
消息映射是MFC应用程序的运行核心,Windows系统以消息的形式把输入传递给应用程序的窗口过程,窗口通过窗口过程来接收和处理消息,并把控制返回Windows系统。 1. 消息结构 消息是一个将事件和数据结合起来的集合。MSG结构含有来自windows应用程序消息队列的消息信息。typedef struct tagMSG { HWND h转载 2015-12-10 00:00:20 · 869 阅读 · 0 评论 -
线程中CreateEvent和SetEvent及WaitForSingleObject的用法
首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与不发信号。WaitForSingleObject()等待,直到参数所指定的O转载 2015-12-15 09:35:16 · 871 阅读 · 0 评论 -
static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较(使用vs2010所带的编译器) 转自 http://www.cnblogs.com/jerry19880126/隐式转换(implicit conversion)short a=2000;int b;b=a;short是转载 2016-02-16 14:57:06 · 647 阅读 · 0 评论 -
C++输入数据流用回车符判断终止
实际问题:很多读入数据都希望用回车来结束,比如输入一串double(输入时用空格隔开),存入到一个vector或数组中,最后用回车结束(关键是个数不限,所以不能用固定循环次数来限定它。 咋一看很简单,要编程突然还没头脑~~~关键是字符和整数或浮点数据的区别。 用cin.get()来获取流中的字符,然后判读是否为回车符,如果不是则将字符放回流中(unget)原创 2016-04-05 14:57:08 · 17185 阅读 · 0 评论 -
c++ 副本构造器
我们都知道两个指针指向同一个变量时如果一个指针被释放那么另一个就会出问题为了说明问题我做了一个很恶心的小例子class C{public : C(int v) { ptrInt=new int; *ptrInt=v; valueInt = v; } ~C() { }转载 2015-09-09 14:33:24 · 473 阅读 · 0 评论 -
【C++专题】static_cast, dynamic_cast, const_cast探讨
首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 int ival = 3;double dval = 3.14159;转载 2015-09-09 14:52:05 · 340 阅读 · 0 评论 -
Openssl编程初探
一、安全通信系统--OpenSSL的安装编译、证书生成1.下载编译并且安装配置从OpenSSLd的官网上(www.openssl.org)下载最新版本或者稳定版本的OpenSSL(本次实验的版本是openssl-1.0.1c),然后解压压缩包。加压之后,由于环境是windows平台的,打开根目录下的windows安装帮助文件(INSTALL.W32),根据文件描述编转载 2015-08-25 15:57:01 · 533 阅读 · 0 评论 -
解决子窗口(视图)截获父窗口消息的2个办法(MFC)
这样的需求: 1.如果想在CView里面截获发给子框架Frame的消息怎么办? 2.假如子窗口拆分视图了, 那还得细分, 是所有视图都想截获消息,还是某个特定的视图想截获某个特定的消息.对于需求1: 办法1.是重载子框架Frame的WindowProc(UINT message, WPARAM wParam, LPARAM lParam)函数,将自定义的消息(大于WM_USER)转发给自己的视转载 2015-08-25 15:48:46 · 2725 阅读 · 0 评论 -
MFC如何使控件大小随着对话框大小自动调整
对话框的大小变化后,假若对话框上的控件大小不变化,看起来会比较难看。下面就介绍怎么让对话框上的控件随着对话框的大小的变化自动调整。首先明确的是Windows有一个WM_SIZE消息响应函数,这个函数在对话框大小发生变化的时候调用,所以我们可以记录下原来对话框的大小,还有当前对话框的大小(这个不用自己算,系统已给出),然后根据控件做出相应比例的调整。比如原来对话框大小为a转载 2015-08-13 15:22:47 · 612 阅读 · 0 评论 -
typedef和#define的用法与区别
typedef和#define的用法与区别一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;type转载 2015-07-21 18:41:43 · 506 阅读 · 0 评论 -
头文件互相包含与error C2146: 语法错误 : 缺少“;”的问题
采集图像卡遇到SDK的头文件error C2146: 语法错误 : 缺少“;”的问题,百度了下原来是头文件包含的问题,几个参考的体贴子。如下:原帖地址:http://hi.baidu.com/shilyx/item/6f1f88052982a88a03ce1b36C++中头文件相互包含的几点问题一、类嵌套的疑问C++头文件重复包含实在是一个令人头痛的问题,前一段时间转载 2015-07-22 17:22:41 · 775 阅读 · 0 评论 -
Socket与WSASocket的区别
socket() 创建一个通讯端点并返回一个套接口。但是在socket库中例程在应用于阻塞套接口时会阻塞。 WSASocket()的发送操作和接收操作都可以被重叠使用。接收函数可以被多次调用,发出接 收缓冲区,准备接收到来的数据。发送函数也可以被多次调用,组成一个发送缓冲区队列。 可是socket()却只能发过之后等待回消息才可做下一步操作! He转载 2015-08-03 18:05:08 · 793 阅读 · 0 评论 -
CreatDC()和CreateIC()
CreateIC()和CreateDC()都获取设备描述表句柄,但用CreateDC()获取的能够进行绘画,而用CreateIC()获取的设备描述表,你却不能用它往设备上写东西,只能查询获取你所要的信息。测试代码如下: #include LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI转载 2015-08-04 23:54:42 · 1299 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没转载 2015-09-01 22:12:02 · 324 阅读 · 0 评论 -
C++多态的实现及原理详细解析
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表转载 2015-09-02 00:16:20 · 438 阅读 · 0 评论 -
C++成员函数的 重载、隐藏、覆盖分析
林锐博士的《高质量C++/C编程指南中对“成员函数的重载、覆盖、隐藏 ”分析设计到一些本质的东西,可能因为博士处一个比较高的位置,对一些问题看来是理所当然,所以其解释可能过于简单,对初学者可能不是十分好理解。 下面,我就这三个规则提出一些个人的看法,理解。这个三规则的顺序我认为应该改为“重载、隐藏、覆盖”来讲,可能思路会清晰一些。 重载的特征: 1、处在相同的空间中,即相同的转载 2015-09-02 00:28:30 · 380 阅读 · 0 评论 -
MFC Socket简单服务器与客户端源码
服务器端代码:#include "stdafx.h"#include "MTServer.h"SOCKET server;using namespace std;UINT MTServerThread(LPVOID pParam);UINT ClientThread(LPVOID pParam);BOOL ParseC转载 2015-08-04 18:19:32 · 1955 阅读 · 2 评论 -
简单分析一下socket中的bind
在最开始接触bind的时候,只是在写基于tcp的server端的时候,知道在listen之前需要先bind一下,用来确保socket能在某个固定的端口监听。而bind的时候,函数参数中的端口填自己将要绑定的端口就行;而IP地址,需要填本机的IP,但是也可以用一个宏INADDR_ANY代替,用这个宏就可以不用查找本机的IP,它就可以代替本机的IP。当时只觉得这个INADDR_ANY比较神奇,但是由于原创 2015-08-05 18:28:42 · 411 阅读 · 0 评论 -
C++流的概念
在C++语言中,数据的输入和输出(简写为I/O)包括对标准输入设备键盘和标准输出设备显示器、对在外存磁盘上的文件和对内存中指定的字符串存储空间(当然可用该空间存储任何信息)进行输入输出这三个方面。对标准输入设备和标准输出设备的输入输出简称为标准I/O,对在外存磁盘上文件的输入输出简称为文件I/O,对内存中指定的字符串存储空间的输入输出简称为串I/O。C++语言系统为实现数据的输入和输出定义了一转载 2015-09-02 16:11:24 · 690 阅读 · 0 评论 -
c++中读入逗号分隔的一组数据
如题,在面试和实际应用中,经常会碰到一个场景:读入以指定符号间隔的一组数据,放入数组当中。看了不少博客,总结了一个个人目前觉得比较简便的方法(其实和java比也一点不简便。。。。)基本思路就是:将输入的数据读到string中,然后将string中的间隔符号用空格代替后,输入到stringstream流中,然后输入到指定的文件和数组中去具体代码如下:// cin,.cpp : Def原创 2016-04-06 21:47:00 · 14942 阅读 · 1 评论
分享