自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 初始化列表

必须使用初始化列表的情况:1. 当初始化一个reference member 时2. 当初始化一个const member 时3. 当调用一个base class 的 constructor,而它拥有一组参数时4. 当调用一个member class 的 constructor,而它拥有一组参数时初始化列表的项目次序是由class中的member声明次序决定,而不是由i

2015-01-11 22:17:11 388

转载 编译器的NRV优化

一、NRV的简单理解    NRV是Named Return Value的简称。NRV优化简单的说:有一条语句,A a = f();其中f()是一个函数,函数里边申请了一个A的对象b,然后把对象b返回。在对象返回的时候,一般情况下要调用拷贝函数,把函数f()里边的局部对象b拷贝到函数外部的对象a。但是如果用了NRV优化,那就不必要调用拷贝构造函数,编译器可以这样做,把a的地址传递进函数f(

2015-01-11 17:24:11 645

原创 变量及函数参数的初始化

变量的初始化void foo_bar(){X x1(x0);X x2 = x0;X x3 = X(x0);}编译器转化有以下两个阶段1. 重写每一个定义,将初始化操作剥离出来2. class的Copy constructor调用操作被安插进去例:void foo_bar(){//编译器重写定义X x1;X x2;X x3; //编

2015-01-07 17:44:39 936

原创 编译器合成copy constructors

编译器合成copy constructors当class 不展现bitwise copy semantics时编译器会产生出来一个copy constructors且缺乏一个已声明的copy constructor时和default constructors一样copy constructors也分为tivial(不被合成出来) & nontivial(被合成于程序之中,不展现bitwis

2015-01-07 15:33:53 358

原创 编译器合成的default constructor

被编译器合成出来的default constructors,只能满足编译器的需要c++的default constructor分为以下两类:1. implicit trivial default constructors: 实际上并没有被合成出来2. implicit nontrivial default constructors在以下四种情况下会被合成出来a.带有default

2015-01-06 10:47:29 339

转载 CArray,CMap,CList 速度比较

出处:http://blog.csdn.net/scollins/article/details/55813651. 数组--CArray   访问方法及效率和普通的数组一样,比普通数组强大的功能是可以改变数组的大小。    Array采用队列方式存储数据,因而其内部数据元素是以物理方式顺序排列的, 所以检索、顺序执行GetAt()等函数的速度是相当快的。但是由于每次队列长度变化后

2014-11-03 16:30:23 1995

转载 临界区,互斥量,信号量,事件的区别

四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。   临界区(Critical Section)保证在某一

2014-10-31 14:33:20 313

转载 ATL 中调用ConvertBSTRToString报错无法解析的外部符号 "char * __stdcall _com_util::ConvertBSTRToString(wchar_t *)

报错代码 :

2014-10-31 10:45:39 1419 2

转载 ATL基础BSTR CComBSTR SysAllocString

ATL基础BSTR CComBSTR SysAllocStringATL提供了 BSTR 和 CComBSTR ,还有OLEAUTO32.DLL导出一个API叫SysAllocString。这些东西有什么意思?有什么用呢?BSTR 是一个typedef,你可以理解为 typedef WCHAR* BSTR它就是一个指针。所以  BSTR p = L"hello";编译是

2014-10-31 10:28:39 681

转载 MFC初始化时隐藏对话框

MFC初始化时隐藏对话框--《VC编程知识总结》之二    前面我讲了如何将MFC最小化到系统托盘,这次讲一下怎么能在最小化到系统托盘之前,将对话框隐藏。关于隐藏对话框,我参考了http://www.qqgb.com/Program/VC/VCJM/Program_55005.html上的不绘制窗口方法,具体方法如下:    第一步,声明一个响应函数afx_msg void

2014-10-20 14:12:45 615

转载 VS2010 简单ATL COM开发(下)

前面一章介绍了怎么创建ATL COM组件及注册,下面简单介绍如何调用COM组件。1、在MFC中调用有一种很方便的方法,就是通过ClassWizard利用类型库生成包装类,不过有个前提就是com组件的接口必须是派生自IDispatch。具体方法:(1)VS2010新建一个MFC基于对话框程序,调出类向导,点击“添加类”下拉菜单,选择“类型库中的MFC类”(From a type li

2014-08-21 11:11:35 590

转载 2010 简单ATL COM开发(上)

1、打开VS2010,新建ATL COM 项目,步骤:“文件” --》“新建” --》“项目”,选择“Visual C++” --》“ATL 项目” ,填写“名称” FirstCOM --》“确定”。2、ATL 项目向导,勾选 【支持COM+ 1.0】和【支持部件注册器】,其他默认,点击完成。3、切换到类视图,右键单击项目“FirstCOM”--》“添加” --》“类”。

2014-08-21 11:09:02 449

原创 COM(三)进程透明性、标准列集、自定义列集

进程透明性不管是进程内组件还是进程外组件,客户程序可以使用一致的方法创建COM对象对于进程外组件,创建成功后,可以用返回的对象接口指针调用对象的成员函数,由于客户程序和组件对象不是同一个进程空间中,所以接口的调用是间接进行的,但是客户程序调用接口函数的时候如果调用本进程内的函数一样。进程外组件的调用方法:列集:是指客户进程可以透明地调用另一进程中的对象成员函数的一种参数处理机制

2014-08-02 09:43:11 1932

转载 error MIDL2311 : statements outside library block are illegal in mktyplib compatability mode

编译COM类型库时出错:error MIDL2311 : statements outside library block are illegal in mktyplib compatability mode : [ ]察看MSDN,发现原因是:   需要在project中将IDL文件的MIDL/mktyplib203选项去掉.

2014-07-31 16:26:02 2937

原创 COM创建机制(二)

一、类厂客户程序并不直接调用组件程序的引出函数,而是直接调用COM库的函数进行组件对象的创建工作。

2014-07-25 09:27:48 719

原创 COM原理(一)

COM接口的特性:1. 二进制特性:接口规范

2014-07-24 09:54:38 910

转载 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是两字节,in

2014-07-08 10:04:28 489

转载 声明与定义&&赋值与初始化详解

我想不管是现在学C系语言的人,还是学习Java等以及其他语言的人最初的入门语言应该都是C语言吧。C语言的难易程度是否适合作为编程入门语言我恐怕没有这个能量来论述一番。我想说的是C语言中的这几个名词(RT)自从最开始出现就一直萦绕在耳边,停留在口头上,但却又总是分不清,道不明的。最近几天搜集了一些这方面的文章与帖子来总结一下,总结是一项很好的学习方法,如果你能把你所学的东西说给别人听,并且把

2014-07-08 09:06:50 374

原创 关于CString字符类型

CString.GetBuffer(0) = CString.GetBuffer(CString.GetLength())CString.GetBuffer(0)

2014-06-27 15:21:30 476

转载 CString转char * ,string

CString 头文件#include string 头文件#include CString 转char *CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str());char 转 CStringCString

2014-06-26 11:45:57 325

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除