随笔分类 -  visual c++

摘要:要了解指针,多多少少会出现一些比较复杂的类型,其实要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,其原则: 从变量名处起,根据运算符优先级结合,一步一步分析。int p; //这是一个普通的整型变量int *p; //首先从P处开始,先与*结合,所以说明P是一个指针,然后再与int结合,说明指针所指向的内容的类型为int型.所以P是一个返回整型数据的指针int p[3]; //首先从P处开始,先与[]结合,说明P是一个数组,然后与int结合,说明数组里的元素是整型的,所以P是一个由整型数据组成的数组int *p[3]; //首 阅读全文
posted @ 2012-11-07 14:13 郑文亮 阅读(543) 评论(1) 推荐(1) 编辑
摘要:一、 Printf 输出格式C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型,其中方括号[]中的项为可选项。各项的意义介绍如下:1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:表示输出类型的格式字符 格式字符意义a 浮点数、十六进制数字和p-计数法(C99)A 浮点数、十六进制数字和p-计数法(C99)c 输出单个字符d 以十进制形式输出带符号整数(正数不输出符号)e 以指数形式输出单、双精度实数E 以指数形式... 阅读全文
posted @ 2012-11-07 13:11 郑文亮 阅读(1746) 评论(0) 推荐(0) 编辑
摘要:在微软vc提供的头文件中有定义在winnt.h中typedef long LONG;在windef.h中typedef LONG LRESULT;所以LRESULT就是long,也就是长整形之所以取名类LRESULT,L=>longresult表示结果,说明这个函数的返回值是某个结果仅此而已 阅读全文
posted @ 2012-11-07 11:27 郑文亮 阅读(4380) 评论(0) 推荐(1) 编辑
摘要:L表示long指针,这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用,没有实际意义。即win32中,long,near,far指针与普通指针没有区别,LP 与P是等效的。P表示这是一个指针。T表示_T宏,这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。STR表示这个变量是一个字符串。C表示是一个常量,const。LPTSTR: 如果定义了UNICOD 阅读全文
posted @ 2012-11-07 11:07 郑文亮 阅读(1307) 评论(0) 推荐(0) 编辑
摘要:&是取地址运算符,表明只把变量的地址传出去,改变变量的值。*是传递指针,虽然也改变变量的值,但如果要改变原变量的地址时,则不会影响主调函数中该变量的地址,而&则会改变。你可以用一个实例去做个实验。int main(){int a = 1 , b = 2;swap1(a, b);cout <<"a = "<< a << " ,"<<"b="<<b;swap2(a,b);cout <<"a = "<< a << 阅读全文
posted @ 2012-11-07 10:31 郑文亮 阅读(793) 评论(0) 推荐(0) 编辑
摘要:CloseHandle()函数的使用??很多程序在创建线程都这样写的:............ThreadHandle = CreateThread(NULL,0,.....);CloseHandel(ThreadHandle );。。。。。这不是刚好创建又关闭了吗?线程怎么运行呢?================================================Closing a thread handle does not terminate the associated thread. To remove a thread object, you must terminat 阅读全文
posted @ 2012-11-07 09:44 郑文亮 阅读(971) 评论(0) 推荐(0) 编辑
摘要:从广义上,能够从一个数值拎起一大堆数据的东西都可以叫做句柄。句柄的英文是"Handle",本义就是"柄",只是在计算机科学中,被特别地翻译成"句柄",其实还是个"柄"。从一个小东西拎起一大堆东西,这难道不像是个"柄"吗? 然后,指针其实也是一种"句柄",只是由于指针同时拥有更特殊的含义——实实在在地对应内存里地一个地址——所以,通常不把指针说成是"句柄"。但指针也有着能从一个32位的值引用到一大堆数据的作用,这不是句柄又是什么? Windows系统中有许多 阅读全文
posted @ 2012-11-07 09:31 郑文亮 阅读(383) 评论(0) 推荐(0) 编辑
摘要:句柄实际上是一种指向某种资源的指针,但与指针又有所不同:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),平时你只是在调用API函数时利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行直接操作时,可以使用GlobalLock锁住这段内存并获得指针来直接进行操作。 “句柄”(handle),handle的本意是把柄,把手的意思。是你与操作系统打交道的东西。举个例子:比如你做了亏心事( 阅读全文
posted @ 2012-11-07 09:28 郑文亮 阅读(2151) 评论(0) 推荐(0) 编辑
摘要:来源一:Using typedef to Curb Miscreant Code Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。本文下面将竭尽全力来揭示 typedef 强大功能以及如何避免一些常见 阅读全文
posted @ 2012-10-27 21:27 郑文亮 阅读(484) 评论(0) 推荐(0) 编辑
摘要:你的很多书指的是国人写的那些老书吧,vc6.0是98年的,98年以后C++标准才正式制定出来vc6.0对C++标准才支持86%,你说你学它干嘛?再说你现在只是学习,出去才用,软件这方面有更新十分快,C++马上就出下一代标准了(C++0x)vc马上要出2010了,你说你该用哪个?——vc2008在给你加上具体的区别:(我以前回答过的问题)visual C++6.0对C++标准(std)的支持只达到86%,按microsoft官方声称,visual studio 2008(visual C++9.0)对C++的支持达到了98%(但实际上也没这么高)我用的就是visual studio 2008。非 阅读全文
posted @ 2012-04-19 09:33 郑文亮 阅读(4817) 评论(0) 推荐(0) 编辑
摘要:这篇文章就是关于COM组件的编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。AD:前一阵在工作中做项目的时候,遇到了COM组件的调用和使用问题,当时研究和好一阵,才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型:1、在VS2005中,C#编写DLL并使用C++调用2、在VS2005中C#编写的COM组件,使用VC6.0调用3、在VC6.0中编写COM组件,使用VS2005 C#调用4、在VC6.0中编写COM组件,使用VC6.0调用其中每个类型都写了两个程序,一个为CO 阅读全文
posted @ 2012-04-19 09:13 郑文亮 阅读(904) 评论(0) 推荐(0) 编辑
摘要:1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const int nValue; //nValue是constint const nValue; // nValue是const但是对于指针类型的TYPE,不同的写法会有不同情况,例如:A. const char *pContent;B. char * const pConte 阅读全文
posted @ 2012-04-08 19:28 郑文亮 阅读(423) 评论(0) 推荐(0) 编辑
摘要:两种类型的参数都允许有效地向函数传递大型类对象 引用必须被初始化为指向一个对象,一旦初始化了它就不能再指向其他对象。指针可以指向一系列不同的对象,也可以什么都不指向。因为指针可能指向一个对象或没有任何对象,所以函数在确定指针实际指向一个有效的对象之前,不能安全地解引用dereference 一个指针。例如class X;void manip( X *px ){// 在解引用指针之前确信它非0if ( px != 0 )// 解引用指针} 另一方面,对于引用参数,函数不需要保证它指向一个对象,引用必须指向一个对象,甚至在我们不希望这样时也是如此。例如class Type { };void ope 阅读全文
posted @ 2012-04-06 12:27 郑文亮 阅读(1844) 评论(0) 推荐(1) 编辑