预处理器-编译器-汇编器-链接器预处理器会处理相关的预处理指令,一般是以”#”开头的指令。如:#include “xx.h” #define等。编译器把对应的*.cpp翻译成*.s文件(汇编语言);汇编器则处理*.s生成对应的*.o文件(obj目标文件);最后链接器把所有的*.o文件链接成一个可执行文件(?.e……继续阅读 » 弦苦 3年前 (2022-03-19) 1859浏览 0评论2104个赞
1.新建一个WorkSpace—DllSample。 2.Add New Project to Workspace,新建工程MyDll,工程类型选择“Win32 Dynamic-Link Library”,选择“A DLL that exports some symbols”,即要求VC++自动生成一些导出符号代码。 (1) 在头文件MyDll.h中添加……继续阅读 » 弦苦 3年前 (2022-03-19) 2810浏览 0评论2078个赞
下面我们来看看Windows平台下应用程序是怎么调用Windows提供的底层API服务运行的。 我们编写Win32SDK程序时,需要弹出对话框以作出友好的选择,MessageBox这个API函数就可以实现该功能。在开头要添加,因为其包含了众多的API函数声明头文件。为了探究这个小小的MessageBox是怎么弹出来的,我们右击MessageBox,选择“Go……继续阅读 » 弦苦 3年前 (2022-03-19) 2106浏览 0评论1331个赞
字符/0和0的区别字符’0’对应的ASCII码为十六进制30;而’/0’即为ASCII码中的0,其对应字符空字符NUL。 char c = /0;çèchar c = 0 // NUL char c = 0;çèchar c = 48;最典型如memset函数:void *memset( void *buffer, int ch, size_……继续阅读 » 弦苦 3年前 (2022-03-19) 1400浏览 0评论2497个赞
define、const&inline……继续阅读 » 弦苦 3年前 (2022-03-19) 1635浏览 0评论1322个赞
赋值操作符赋值操作符即“=”。赋值操作符为二元操作数,其操作目的是将右操作数的值复制给左操作数。由于左值涉及到写操作,因此左值必须为非const量,而右值在赋值操作中只涉及读操作,因此一般为const量。赋值操作符通常返回左操作数的引用,这样就不需要创建和撤销运算结果的临时副本。C/C++编译器支持对内置类型(例如整形int和浮点型double)的赋值运算。……继续阅读 » 弦苦 3年前 (2022-03-19) 2380浏览 0评论1188个赞
//派生类成员函数对基类成员函数的覆盖#include “stdafx.h”#includeclass A{public: void Show() { std::cout”A::Show/n”; }}; class B:public A{public: void ……继续阅读 » 弦苦 3年前 (2022-03-19) 1999浏览 0评论555个赞
(1)构造函数、析构函数与赋值函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A 产生四个缺省的函数,……继续阅读 » 弦苦 3年前 (2022-03-19) 1307浏览 0评论551个赞
1.指针的初始化指针变量的零值是“空”(记为NULL)。在中#define NULL 0,尽管NULL 的值与0 相同,但是两者意义不同。假设指针变量的名字为p,它与零值比较的标准if 语句如下:if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量。当我们试图析取(dereference)一个空指针NULL时,例如int *p =……继续阅读 » 弦苦 3年前 (2022-03-19) 2318浏览 0评论778个赞