qintangtao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年12月4日

摘要: 为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下: 常变量: const 类型说明符 变量名 常引用: const 类型说明符 &引用名 常对象: 类名 const对象名 常成员函数: 类名::fun(形参) const 常数组: 类型说明符 const 数组名[大小] 常指针: const 类型说明符* 指针名 ,类型说明符* const 指针名首先提示的是:在常变量(const 类型说明符 变量名)、常引用(const 阅读全文
posted @ 2012-12-04 17:52 qintangtao 阅读(287) 评论(0) 推荐(0) 编辑

摘要: 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将只在执行线程第一次到达它的定义使初始化。用法2:局部静态对象 对于局部静态对象,构造函数是在控制线程第一次通过该对象的定义时调用。在程序结束时,局部静态对象的析构函数将按照他们被构造的相反顺序逐一调用,没有规定确切时间。用... 阅读全文
posted @ 2012-12-04 17:52 qintangtao 阅读(188) 评论(0) 推荐(0) 编辑

摘要: 1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,C++的规则在翻译这个函数名时会把fun这个名字变得面目全非,可能是fun@aBc_int_int#%$也可能是别的,这要看编译器的"脾气" 阅读全文
posted @ 2012-12-04 17:26 qintangtao 阅读(297) 评论(0) 推荐(0) 编辑

摘要: 字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。以下是别人的总结:一、在字符串前加一个L作用: 如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。 strlen("asd") = 3; st 阅读全文
posted @ 2012-12-04 17:08 qintangtao 阅读(151) 评论(0) 推荐(0) 编辑

摘要: 我想,初学者啊,对像我一样的mfc初学者来说,这些入门练习还是很有必要做做的,也应该会有一定的参考价值,那么言归正传。大家都知道的操作废话我就不多说,CTRL+SHIFT+N建立一个新项目,有图有真相,直接上图:点击上图的“确定”之后,除了下图内容要改一下之外,其他的“MFC应用程序向导”全部予以默认即一路不需改动!那么直接如图所示:把默认的“多个文档”改成“单个文档”。 “MFC应用程序向导”完成之后,首先请关注“解决方案资源管理器”,那么如下图所示。本练习只需关注图示红框中的文件,用以“加入显示功能”。*****************************************... 阅读全文
posted @ 2012-12-04 16:48 qintangtao 阅读(1687) 评论(0) 推荐(0) 编辑

摘要: 一、动态链接库(DLL)介绍1. Non-MFC DLL:指的是不用MFC的类库结构,直接用C语言写的DLL,其输出的函数一般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用。2. Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的。明显的特点是在源文件里有一个继承CWinApp的类。其又可细分成静态连接到MFC和动态连接到MFC上的。但静态连接到MFC的动态连接库只被VC的专业般和企业版所支持。动态链接库和MFC静态链接:这种DLL在链接过程中会将使用到得MFC类库复制一份到最终的DLL文件中最终生成的DLL比较庞大且加载时不是很方便,但它可以 阅读全文
posted @ 2012-12-04 15:43 qintangtao 阅读(3763) 评论(0) 推荐(0) 编辑

摘要: __declspec(dllexport)声明一个导出函数,是说这个函数要从本DLL导出。我要给别人用。一般用于dll中 省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类__declspec(dllimport)声明一个导入函数,是说这个函数是从别的DLL导入。我要用。一般用于使用某个dll的exe中 不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够 阅读全文
posted @ 2012-12-04 13:48 qintangtao 阅读(306) 评论(0) 推荐(0) 编辑

摘要: 共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。共有两种链接方式:动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅包含在运行时定位DLL函数的可执行代码所需的信息。静态链接使用静态链接库,链接器从静态链接库LIB获取所有被引用函数,并将库同代码一起放到可执行文件中。关于lib和dll的区别如下:(1)lib是编译时用到的,dll 阅读全文
posted @ 2012-12-04 12:51 qintangtao 阅读(289) 评论(0) 推荐(0) 编辑