VC
文章平均质量分 56
一朵格桑花
善良的程序猿妹纸一枚
展开
-
线程同步和异步区别 异步机制
<strong>出处:http://blog.csdn.net/wxqian25/article/details/9417613</strong><strong>区别同步和异步</strong> 一个进程启动的多个不相干线程,它们相互之间关系为异步。 举个简单的例子 就是游戏,游戏会有图像和背景音乐 图像是由玩家操作...转载 2018-12-18 16:03:19 · 789 阅读 · 0 评论 -
解决VS中CListCtrl中+点击没有效果(点击+不能展开再次点击不能折叠)
上次遇到过这种问题,找了资料解决了,原创 2014-10-17 18:07:53 · 780 阅读 · 0 评论 -
Boost::Thread使用示例
Boost::Thread的实现总体上是比较简单的,前面已经说过,thread只是一个跨平台的线程封装库,其中按照所使用的线程选项的不同,分别决定使用Windows线程API,pThread,或Mac平台的thread实现。以下只讨论Windows,即使用BOOST_HAS_WINTHREAD的情况。Boost::Thread有两个构造函数:一个是thread(),构造一个表示当前执行线程转载 2014-10-16 18:04:49 · 594 阅读 · 0 评论 -
VS2008 “Add/Remove operation is impossible,becase the code element 'ConnectionAddDlg' is read only”
删除.ncb文件,然后重新打开运行即可。原创 2014-10-17 10:46:02 · 619 阅读 · 0 评论 -
Boost Thread中mutex 用法
除了thread,boost::thread另一个重要组成部分是mutex,以及工作在mutex上的boost::mutex::scoped_lock、condition和barrier,这些都是为实现线程同步提供的。mutexboost提供的mutex有6种:boost::mutexboost::try_mutexboost::timed_mutexboost::re转载 2014-10-16 18:03:36 · 584 阅读 · 0 评论 -
C++异常抛出与捕获及处理
一、异常 迄今为止,我们处理程序中的错误一般都是用if语句测试某个表达式,然后处理错误的特定义代码。 C++异常机制使用了三个新的关键字 (SEH(结构化异常处理))try ──标识可能出现的异常代码段throw ──抛出一个异常catch ──标识处理异常的代码段 提示: 使用异常处理将带来更多的系转载 2014-10-09 13:25:36 · 1270 阅读 · 0 评论 -
C++基础之boost库的智能指针
【Boost介绍】Boost是个组织(http://www.boost.org/),提供可移植的,源码开放的C++程序库。部分Boost库已经被包含到了C++标准化委员会的TR1中。目前可以下载到到最新boost库是1.47.0。解压后的目录结构:使用大多数boost库不需要build,包含头文件就可以了。project 右键Properties -> C/C++转载 2014-10-09 13:23:36 · 460 阅读 · 0 评论 -
关于C++ Boost库的使用
Boost介绍:Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。 Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。 Boost社区建立的初转载 2014-10-09 13:20:23 · 843 阅读 · 0 评论 -
在Windows和Visual Studio上安装Boost
下载并安装boost1,在boost的网站上下载一个boost的Windows版本的安装器。http://www.boost-consulting.com/download/windows这个程序会自动下载和安装boost。整个Boost有接近1G那么大。2,或者你也可以直接在boost网站上下载完整版的boost,下载以后安装。boost_1_34转载 2014-10-09 13:19:47 · 1560 阅读 · 0 评论 -
C++中 模板Template的使用
1、在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?答:class用于定义类,在模板引入c++后,最初定义模板的方法为:template,这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为转载 2014-10-09 13:24:43 · 400 阅读 · 0 评论 -
Boost智能指针——shared_ptr
boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法:#include #include #include class implementation{publi转载 2014-10-09 13:21:46 · 594 阅读 · 0 评论 -
VC中的sizeof
[原文http://dev.csdn.net/Develop/article/42/42446.shtm] 本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。1、 sizeof应用在结构上的情况请看下面的结构:struct MyStruct转载 2014-11-04 17:31:22 · 528 阅读 · 0 评论 -
【Boost】boost::function介绍
1. 介绍 Boost.Function库包含了一个类族的函数对象的包装。它的概念很像广义上的回调函数。其有着和函数指针相同的特性但是又包含了一个调用的接口。一个函数指针能够在能以地方被调用或者作为一个回调函数。boost.function能够代替函数指针并提供更大的灵活性。2. 使用 Boost.Function有两种形式:boost::functionf 使用转载 2014-10-19 21:37:42 · 428 阅读 · 0 评论 -
C++ const
经过一段时间的分析总结,原创 2014-10-18 22:53:50 · 424 阅读 · 0 评论 -
理解IP和端口
IP地址是一个规定,现在使用的是IPv4,既由4个0-255之间的数字组成,在计算机内部存储时只需要4个字节即可。在计算机中,IP地址是分配给网卡的,每个网卡有一个唯一的IP地址,如果一个计算机有多个网卡,则该台计算机则拥有多个不同的IP地址,在同一个网络内部,IP地址不能相同。IP地址的概念类似于电话号码、身份证这样的概念。由于IP地址不方便记忆,所以有专门创造了域名(Domain Name)的转载 2015-05-22 14:24:22 · 541 阅读 · 0 评论 -
同步、异步、多线程
1、首先明确一点,对于单核CPU,任意一个时刻只有一个线程在运行。那么既然这样,多线程还有什么意义呢? 举例来说,现在只有一个人,要做好几个任务。单线程就是,任务一个一个地做,必须做完一个任务后,再去做另一个任务。多线程就是一会做这个任务,一会做那个任务,每个任务做一会,不停的切换。显然,最后把所有的任务做完,多线程必定比单线程更耗费时间。为什么?因为,多线程要在不同的任务之间切换,切换肯定是要耗转载 2015-05-14 17:09:41 · 433 阅读 · 0 评论 -
在本地部署Metro应用程序的方法
前言 微软Windows 8操作系统的一大亮点是面向平板电脑的应用: Metro应用程序;它使得新版操作系统同时兼容平板和传统桌面电脑。Metro应用程序的开发必须在Windows 8 Consumer Preview及以上; 它支持编程语言有:C#/VB.net, C++和Javascript。感兴趣的同学,可以在VMWare 8及以上安装一个Windows转载 2015-05-13 15:23:13 · 1027 阅读 · 0 评论 -
VS2013 密钥
Visual Studio Professional 2013 KEY(密钥):XDM3T-W3T3V-MGJWK-8BFVD-GVPKYTeam Foundation Server 2013 KEY(密钥):MHG9J-HHHX9-WWPQP-D8T7H-7KCQGVisual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R原创 2015-03-13 10:16:01 · 933 阅读 · 0 评论 -
非模态对话框之间的切换
前几天工作遇到个问题:非模态对话框创建后想返回到它的父父窗口总是崩溃,最后找到了方法,写了个小例子,大家一起讨论学习。非模态对话框之间的切换例子原创 2015-01-22 11:52:31 · 1001 阅读 · 0 评论 -
socket套接字通信C语言示例vc6.0
转自:http://blog.csdn.net/xgx198831/article/details/8464552socket套接字通信C语言示例,编程环境vc6.0该程序用使用的面向连接(tcp/ip)的字符流套接字程序包含两部分,一部分是通信的服务端,一部分是通信的客户端//========================================转载 2015-01-07 11:12:44 · 2863 阅读 · 0 评论 -
vc 基于对话框多线程编程实例——线程之间的通信
实例:转载 2015-01-07 11:45:06 · 1417 阅读 · 0 评论 -
C++ boost库----share_from_this类的作用和实现原理
使用boost库时,经常会看到如下的类class A:public enable_share_from_this在什么情况下要使类A继承enable_share_from_this?使用场合:当类A被share_ptr管理,且在类A的成员函数里需要把当前类对象作为参数传给其他函数时,就需要传递一个指向自身的share_ptr。我们就使类A继承enable_share转载 2014-10-20 15:45:45 · 503 阅读 · 0 评论 -
C++类模板实现push_back、insert、operator=
1、定义一个类模板:原创 2014-10-18 23:07:36 · 1772 阅读 · 0 评论 -
boost::bind简要介绍
boost::bind是一个很神奇的东西。他可以把函数(包括类成员函数!)和其参数一起打包成一个函数对象。未引入它之前,基于面向对象架构的软件往往很难在接口设计中引入回调函数的——因为类成员函数无法直接作为回调函数使用——当然,有办法可以搞定,比如把this指针作为回调函数的参数传入。但是这些解决之道往往比较扭曲,远不如bind来得简单直接。虽然bind也是有代价的,调用的时间代价(包括bind的转载 2014-10-19 21:04:55 · 528 阅读 · 0 评论 -
利用boost获取时间并格式化
利用boost来获取当前时间又方便快捷,还不用考虑跨平台的问题。1. 输出YYYYMMDD[cpp] view plaincopy#include #define BOOST_DATE_TIME_SOURCE std::string strTime = boost::gregorian::to_iso_strin转载 2014-10-25 21:34:00 · 499 阅读 · 0 评论 -
Boost::thread库的使用
Boost::thread库的使用2009/11/26Kagula 阅读对象本文假设读者有几下Skills[1]在C++中至少使用过一种多线程开发库,有Mutex和Lock的概念。[2]熟悉C++开发,在开发工具中,能够编译、设置boost::thread库。 环境[1]Visual Studio 2005/2008 with SP1[2]b转载 2014-10-25 22:12:37 · 473 阅读 · 0 评论 -
VC Picture控件的使用
(一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID)(二) 动态载入图片(即只需要在程序中指定图片的路径即可载入)为方便说明,我们已经建好一个基于对话框的工程,名为Ttest,对话框类为CTestDlg(一)vc picture控件非动态载入图片.方法1.先从最简单的开始,用picture 控件来实现.步骤:先在资源里Import一张图片,ID为IDB_BI转载 2014-11-08 21:04:45 · 706 阅读 · 0 评论 -
关于默认实参
转自:http://blog.csdn.net/chollima/article/details/3454839最近在看关于函数的一部分,其中有这两句话很吸引我,一是:既可以在函数声明中也可以在函数定义中指定默认实参,但是在一个文件中,只能为一个形参指定默认实参一次;二是:如果在函数定义的形参表中提供默认实参,那么只有在包含该函数定义的源文件中调用该函数时,默认实参才是有效的。细细一想才明转载 2013-12-05 14:24:26 · 651 阅读 · 0 评论 -
STL系列之一 deque双向队列
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数:deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存deque中的数据。因转载 2013-11-12 10:11:27 · 430 阅读 · 0 评论 -
c++多线程
多线程的简介线程---操作系统调度的最小单位。线程包含在进程中,是进程中实际运行的单位。一个进程中可以同时运行多个线程,每个线程可以执行不同的任务,这就是所谓的多线程。同一进程中的多个线程将共享该进程中的全部系统资源,如虚拟地址空间、文件描述符和信号处理等,但是同一个进程中的多个线程都有各自的调用栈、寄存器环境和线程本地存储。 对于单核(单CPU)系统来说,即便处理器一次只能运转载 2013-11-25 11:09:34 · 535 阅读 · 0 评论 -
C++之“友元类”学习笔记
=======================什么是友元类======================= 当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。=======================友元类能做什么======================= 友元类可以通过自己的方法来访问把它当转载 2013-11-25 10:42:58 · 500 阅读 · 0 评论 -
C++父类定义虚函数其派生类的同名函数使用virtual关键字吗?
当父类成员函数被声明为虚函数后,其派派生类中的同名函数都自动成为虚函数。子类声明该虚函数时,可以加virtual关键字,也可以不加virtual关键字。原创 2013-11-22 13:25:22 · 1864 阅读 · 0 评论 -
浅谈C++多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定转载 2013-11-05 16:12:06 · 616 阅读 · 0 评论 -
C++指针数组和指向指针的指针
一、指针数组的概念如果一个数组,其元素均为指针类型数据,该数组称为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量,它的值都是地址。一维指针数组的定义形式为 类型名*数组名[数组长度];例如int *p[4];可以用指针数组中各个元素分别指向若干个字符串,使字符串处理更加方便灵活。例6.15 若干字符串按字母顺序(由小到大)输出。#include转载 2013-11-05 11:11:10 · 650 阅读 · 0 评论 -
c++指针
这是一篇我所见过的关于指针的最好的入门级文章,它可使初学者在很短的时间内掌握复杂的指针操作。虽然,现在的Java、C#等语言已经取消了指针,但作为一个C++程序员,指针的直接操作内存,在数据操作方面有着速度快,节约内存等优点,仍是很多C++程序员的最爱。指针就像是一把良剑,就看你怎么去应用它! 什么是指针? 其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而转载 2013-11-05 10:18:29 · 473 阅读 · 0 评论 -
C++类与结构体区别以及类大小的计算
1.C ++的结构体和类的区别 C++结构体内部成员变量及成员函数默认的访问级别是public,而c++类的内部成员变量及成员函数的默认访问级别是private。 C++结构体的继承默认是public,而c++类的继承默认是private。 2.sizeof(虚函数)(类) C++中类的成员函数,静态成员是不占类的大小的。 如果有虚函数,类的大小+4个字节。(用原创 2013-11-19 11:56:50 · 794 阅读 · 0 评论 -
C++中const用法总结
1. const常量,如const int max = 100; 优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误。2. const修饰类的数据成员。转载 2013-11-18 16:44:36 · 657 阅读 · 0 评论 -
C++ 指针和引用的比较
虽然使用引用(reference)和指针都可间接访问另一个值,但它们之间有两个重要区别。第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。第二个重要区别则是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的原因)。 考虑以下两个程序段。第一个程转载 2014-01-02 15:37:10 · 510 阅读 · 0 评论 -
C++ vector
vector模板类可以存放任何同一类型的对象,其中的元素是连续存储的。要包含头文件#include 使用方法:例如有一个类CActionInfo 1. 定义vector对象:std::vector katongList; 2. vector插入对象: int CManage::addKatong(CActionInfo* p_cal) {int temp =原创 2013-12-19 11:49:13 · 532 阅读 · 0 评论 -
创建动态数组
数组类型的变量有三个重要的限制:数组长度固定不变,在编译时必须知道其长度,数组只在定义它的块语句内存在。实际的程序往往不能忍受这样的限制——它们需要在运行时动态地分配数组。虽然数组长度是固定的,但动态分配的数组不必在编译时知道其长度,可以(通常也是)在运行时才确定数组长度。与数组变量不同,动态分配的数组将一直存在,直到程序显式释放它为止。每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配转载 2014-01-03 10:55:51 · 3881 阅读 · 0 评论