随笔分类 - Visual C++
vc开发
摘要:程序如下: 答案:第一行:12 第二行:f(1,2) 说明: 1、关于符号#和## 两个符号都只能用于预处理宏扩展。不能在普通的源码中使用它们,只能在宏定义中使用。 简单的说,#是把宏参数变为一个字符串,##是把两个宏参数连接在一起。 2、关于宏展开 预处理过程的几个步骤: 1)字符集转换(如三联字
阅读全文
摘要:在计算机里,对于地址的描述,很少用“大”和“小”来形容;对应地,用的更多的是“高”和“低”;很不幸地,这对术语直接按字面翻译过来就成了“大端”和“小端”,在裘宗燕翻译的《程序设计实践》里,这对术语并没有翻译为“大端”和小端,而是“高尾端”和“低尾端”,这就好理解了:如果把一个数看成一个字符串,比如1
阅读全文
摘要:VC2012 下写 Windows 程序时,有时需要判断编译环境。在之前的文章《判断程序是否运行在 Windows x64 系统下。》里说过如何在运行期间判断系统环境,但在编译时如何判断? MSDN 里说,VC 有 3 个预处理常量,分别是 _WIN32,_WIN64,WIN32。这三个常量如何使用
阅读全文
摘要:列出预定义的 ANSI C和C++ Microsoft实现宏。 编译器识别预定义的ANSI C宏,并且Microsoft C++实现提供几个更多。这些宏不带参数,并且不能重定义。下面列出的某些预定义的宏定义与多个值。请参见下表。有关更多信息。 ANSI兼容的预定义宏 宏 说明 __DATE__ 当前
阅读全文
摘要:C++中没有返回类型的函数有3个,构造函数、析构函数、类型转换函数。 operator const char *() const 如果是重载*的话,那应该写成:const char operator * () const而上面所写的那样,而且即使是这样写那也不正确的, 因为运算符重载中有几个运算符的
阅读全文
摘要:每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不编写上述函数,C++编译器将自动为A 产生四个缺省的函数,例如: A(void);//缺省的无参数构造函数 A(const A&a);//缺省的拷贝构造函数 ~A();
阅读全文
摘要:线程函数为静态函数: 线程控制函数和是不是静态函数没关系,静态函数是在构造中分配的地址空间,只有在析构时才释放也就是全局的东西,不管线程是否运行,静态函数的地址是不变的,并不在线程堆栈中static只是起了一个装饰的作用,所以二者并没有必然的关系 线程也是一种资源,是受系统调度的。因此,你必须要让系
阅读全文
摘要:复制于:http://www.cnblogs.com/lidabo/archive/2012/08/23/2652796.html 1、基本操作 分别从下面四点来介绍CListCtrl的基本操作: ①设置列表视图显示方式 Ⅰ. CListCtrl有四种样式:LVS_ICON、LVS_SMALLICO
阅读全文
摘要:模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。 模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。 模版特化:任何针对模版参数进一步进行条件限制设计的特化版
阅读全文
摘要:在高级语言中,就是通过函数的调用方式来说明这两个问题的。常见的调用方式有:stdcallcdeclfastcallthiscallthiscallnaked call下面就分别介绍这几种调用方式:1. stdcallstdcall调用方式又被称为Pascal调用方式。在Microsoft C++系列
阅读全文
摘要:函数功能:创建线程 函数原型: HANDLEWINAPICreateThread( LPSECURITY_ATTRIBUTESlpThreadAttributes, SIZE_TdwStackSize, LPTHREAD_START_ROUTINElpStartAddress, LPVOIDlpPa
阅读全文
摘要:从来没有见过这样的函数声明。那么它究竟是一个怎样的函数呢?我努力回忆起《C专家编程》一书的内容,把其中解读变量声明的方法应用于该函数上,最终读懂了该函数。下面是大致的解读过程。 首先,要确定声明中出现的操作符的优先级。显然,函数调用操作符()的优先级是高于指针解引用操作符*的。另外,小括号总是具有最
阅读全文
摘要:"typename"是一个C++程序设计语言中的关键字。相当用于泛型编程时是另一术语"class"的同义词。这个关键字用于指出模板声明(或定义)中的非独立名称(dependent names)是类型名,而非变量名。 学习C++的人对class这个关键字都非常明白,class用于定义类。在模板引入c+
阅读全文
摘要:std::bind1st 和 std::bind2nd将二元函数转换为一元函数,具体用法参加下面的代码。 代码介绍了两种使用方式,第一种是使用std::less和std::greater,第二种是使用自定义的仿函数。 copy_if: std::bind1st std::binder1st std:
阅读全文
摘要:我们直接看定义: 一元函数:接受一个参数的函数,如f(x)。 一元谓词函数:如果一元函数返回一个BOOL类型的值,则该函数称为谓词。 二元函数:接受2个参数的函数,如f(x,y)。 二元谓词函数:如果二元函数返回一个BOOL值,则该函数称为二元谓词。 之所以给返回布尔类型的函数对象专门命名,是因为谓
阅读全文
摘要:Technical Report 1不是正式的库只是一个草案,作为C++ 2003标准的附加库被大多数编译器厂商所支持,它是个过渡性质的库,其实现将会作为C++11标准的一部分。很多编译器对C++11的支持在其内部实现中对相关功能的处理实际上就是用的之前其对Technical Report 1的实现
阅读全文
摘要:学习要点: 1,函数地址的一般定义和typedef简化定义; 2,函数地址的获取; 3,A函数地址作为B函数参数的传递; 函数存放在内存的代码区域内,它们同样有地址.如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。
阅读全文
摘要:C运行时库函数C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的。API函数API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的。区别他们之间区别是:API函数是针对操作系统的,C语言运行时函数则是针对C语言本身的。·1、运行时库就...
阅读全文
摘要:hgy413的专栏http://blog.csdn.net/hgy413/article/category/1143065
阅读全文
摘要:1、SetTimer定义在那里? SetTimer表示的是定义个定时器。根据定义指定的窗口,在指定的窗口(CWnd)中实现OnTimer事件,这样,就可以相应事件了。SetTimer有两个函数。一个是全局的函数::SetTimer()UINT SetTimer( HWNDhWnd,// handle...
阅读全文