C++
zhou_botong001
这个作者很懒,什么都没留下…
展开
-
动态链接库的使用简述
Ø 隐式链接需要lib、头文件、dll文件。下述三种方法取其一:1) 在project->setting->link->object/library modules中包含lib;2) project->add to project->files 中加入lib;3) #pragma comment(lib,"MyDll.lib"),原创 2009-09-10 18:48:00 · 548 阅读 · 0 评论 -
UpdateData、Invalidate、InvalidateRect和UpdateWindow
在编程的时候经常把UpdateData、Invalidate、InvalidateRect和UpdateWindow四个函数混淆,在这里将简单介绍它们的区别。 UpdateData(): 当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE);如果你希望知道用户在对转载 2009-10-27 15:36:00 · 538 阅读 · 0 评论 -
【转】堆和栈的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量转载 2009-10-15 11:54:00 · 644 阅读 · 1 评论 -
【转】C++中的四种强制类型转换的区别
使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。 1 static_cast用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类转载 2009-10-15 10:13:00 · 3847 阅读 · 6 评论 -
【转】windows进程中的内存结构
【转】windows进程中的内存结构 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使用VC编译的release版。 首先,来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(L转载 2009-10-15 11:57:00 · 1143 阅读 · 1 评论 -
【转】三种继承方式public、protecter、private之间的差别
差别就是访问属性上的差别呗! public是公有,所有的函数都可以访问它,权限上不受限制 protected是保护,只有成员函数和友元函数可以访问它(其实它就是专门为友元设计的) private只能是类的成员函数可以访问 在继承上,列个表吧 基类 继承方式 派生类 ---------------------------------------- public public public publi转载 2009-10-10 10:23:00 · 988 阅读 · 0 评论 -
使用DC画笔的典型步骤
CDC* pCurDC=m_PicView.GetDC(); CPen* pOldPen=NULL; //生成并载入画笔 CPen penBound; if (RED==color) penBound.CreatePen(PS_SOLID,m_nEdgeWidth,RGB(255,0,0)原创 2009-09-17 12:01:00 · 811 阅读 · 0 评论 -
【转】Windows终止线程运行的四种方法
终止线程运行 若要终止线程的运行,可以使用下面的方法: • 线程函数返回(最好使用这种方法)。 • 通过调用 ExitThread 函数,线程将自行撤消(最好不要使用这种方法)。 • 同一个进程或另一个进程中的线程调用 TerminateThread 函数(应该避免使用这种方法)。 • 包含线程的进程终止运行(应该避免使用这种方法)。 下面将介绍终止线程运行的方法,并且说明线程终止运行原创 2009-09-14 11:34:00 · 1070 阅读 · 0 评论 -
为什么要使用多态
引入多态是为了解决一般化问题和架构的抽象。Ø 非多态的特点1) 如果你以一个「基础类别之指针」指向「衍生类别之对象」,那么经由该指针你只能够调用基础类别所定义的函数。2) 如果你以一个「衍生类别之指针」指向一个「基础类别之对象」,你必须先做明显的转型动作(explicit cast)。这种作法很危险,不符合真实生活经验,在程序设计上也会原创 2009-09-11 09:41:00 · 4422 阅读 · 0 评论 -
【转】函数调用规范__cdecl和__stdcall的区别一目了然(表格形式)
__cdecl __stdcall C 和 C++ 程序的缺省调用规范 为了使用这种调用规范,需要你明确的加上 __stdcall (或 WINAPI )文字。即 return-type __stdcall function-name[(argument-list)]转载 2009-09-14 11:00:00 · 455 阅读 · 0 评论 -
【转】 C++中extern “C”含义深层探索
1.引言C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。2转载 2009-09-10 09:38:00 · 464 阅读 · 0 评论 -
析构函设为虚拟的好处
类继承中构造函数和析构函数的调用现在,有三个类,类的定义如下class CA{public: CA(){cout ~CA(){cout};class CB:public CA{public: CB(){cout ~CB(){cout};class CC:public CB{public: CC(){cout ~CC(){cout};CA是爷爷,CB是爸爸,转载 2009-11-01 19:22:00 · 618 阅读 · 0 评论