学习笔记
文章平均质量分 76
wangjiwei2010
这个作者很懒,什么都没留下…
展开
-
xp的终极优化
总体设想:让WinXP更苗条、性感、速度更快,使用更便捷。为了达到这个目的,我们主要从四个方面入手:1、减少磁盘空间占用2、终止不常用的系统服务3、安全问题4、另外一些技巧首先问一下,你是不是很想激活XP,不。。。准确的说你是不是想在ms的站上能够升级。如果答案是肯定的话,那我们就先来探讨一下安装的问题,目前流行的V4、V5、V6版本我还是比较推荐的,尤其是V5和V6这两个。安装的过程中有个序转载 2007-06-11 21:37:00 · 3590 阅读 · 0 评论 -
三十分钟掌握STL
三十分钟掌握STL 这是本小人书。原名是转载 2007-04-23 16:25:00 · 1042 阅读 · 0 评论 -
学会利用搜索引擎
标 题:学会利用搜索引擎发信人:老罗 时 间:2003/01/24 03:45pm详细信息:我发现初学者往往只是不知道怎么利用网络的资源,所以才会提出一些在老手看来比较“幼稚”的问题。其实在网络上“淘金”还是有技巧的,而我自己是这样寻找帮助的:(在使用MSDN搜索过,并找不到满意的答案的前提下)1、首先使用http://www.google.com例如,前段时间我想找一个对话框淡入淡出转载 2007-07-19 11:59:00 · 1176 阅读 · 0 评论 -
C++资源之不完全导引
C++资源之不完全导引 [上] 撰文/ 曾毅陶文 最后更新:2004年6月11日转载 2007-04-12 17:52:00 · 1594 阅读 · 9 评论 -
指针函数和函数指针有什么区别
1,这两个概念都是简称,指针函数是指带指针的函数,即本质是一个函数。我们知道函数都又返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。其定义格式如下所示: 返回类型标识符 *返回名称(形式参数表) { 函数体 } 返回类型可以是任何基本类型和复合类型。返回指针的函数的用途十分广泛。事实上,每一个函数,即使它不带有返回某种类型的指针,它本身都有一个入口地址, 该地址相当于转载 2007-04-11 20:35:00 · 751 阅读 · 0 评论 -
判断一个指针是否为空,abort()、assert、抛出异常的使用、ASSERT与VERIFY宏的区别
判断一个指针是否为空//vs20051. abort()#include//...if(!ptr) abort();2. assert#include//....assert(ptr!=0);//assert(xx);当xx为非零值时,无异常,当xx为零食异常中断3. 抛出一个异常if(!ptr) throw "Panic: prt ==0";4.ASSERT与VERIFY宏的区别原创 2007-04-10 11:22:00 · 3717 阅读 · 0 评论 -
在C++中的ODBC API数据库编程
一、动态加载数据源: 1、通过修改注册表加载数据源:·用户数据源:HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI·系统数据源:HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI 对于不同类型的数据源,注册表的修改也不同,但基本上要修改两个地方,一个是在ODBC.INI子键下建立一个与数据源描述名同名的子键,转载 2007-07-06 17:48:00 · 4359 阅读 · 0 评论 -
成员初始化列表和构造函数体中的区别
成员初始化列表和构造函数体中的区别 论坛中回答一个别人问题C++ Primer中在讲构造函数初始化列表的时候有这么一段话:无论是在构造函数初始化列表中初始化成员,还是在构造函数体中对它们赋值,最终结果是相同的。不同之处在于,使用构造函数初始化列表的版本初始化数据成员,没有定义初始化列表的构造函数版本在构造函数体中对数据成员赋值。请问这里的初始化数据成员与对数据成员赋值的含义是什么?有什么区别?转载 2007-04-05 11:18:00 · 1425 阅读 · 0 评论 -
函数指针数组的妙用
函数指针数组的妙用 笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识该数据的类型,共有256(28 )种可能性。我的任务是必须对每一种可能出现的数据类型都转载 2007-04-05 11:17:00 · 746 阅读 · 0 评论 -
深入剖析移位运算
提问的帖子位置:把一个字节逆置,要求用移位的方法 http://community.csdn.net/Expert/topic/5485/5485868.xml?temp=.9292108C/C++用移位实现乘除法运算,提高运行效率 用移位实现乘除法运算 a=a*4; b=b/4;可以改为: a=a b=b>>2;说明:除2 = 右移1位原创 2007-04-23 16:36:00 · 2214 阅读 · 2 评论 -
预编译头文件解决C/C++混合编程问题
转载 2007-04-28 23:14:00 · 2632 阅读 · 1 评论 -
象老板那样思考
有些专家提倡,如果你要想成为怎么样的人,那么先要学会用这种人的方式进行思考与行动,比如偶在打工的时候就梦想着成为一个boss,于是偶就特别注意观察作为一个boss是如何思维以及经常有什么样的行为,幸运地,终于有一天我如愿以偿,也发现往昔的观察与模仿亦有一定的启发与帮助。 写这一篇文章是阅读《读者》的一个收获,前两三年,《读者》一直是我的厕所读物,现在我的厕所读物尽管已升级到《财富》《福转载 2007-05-29 09:09:00 · 1276 阅读 · 0 评论 -
使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。
3.1 static_cast用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类转载 2007-05-24 21:09:00 · 1356 阅读 · 0 评论 -
CString,string,char*的综合比较
CString,string,char*的综合比较 (一) 概述string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;CString(typedef CStringT> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用转载 2007-05-22 20:23:00 · 1108 阅读 · 0 评论 -
C++中的临时变量
C++的临时变量 它们是被神所遗弃的孩子,没有人见过它们,更没有人知道它们的名字.它们命中注定徘徊于命运边缘高耸的悬崖和幽深的深渊之间,用自己短暂的生命抚平了生与死之间的缝隙.譬如朝露,却与阳光无缘.是该为它们立一座丰碑的时候了,墓铭志上写着:我来了,我走了,我快乐过. 许多人对临时变量的理解仅仅限于: string temp; 其实,从C++的观点来看,这根本就不是临时变量,而是局部变量.转载 2007-05-25 15:34:00 · 6184 阅读 · 0 评论 -
void类型及void指针
1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一原创 2007-05-24 20:22:00 · 5798 阅读 · 2 评论 -
VC小技巧(1)---禁止同一应用程序同时运行 2,3,4,5,6..
防止同一应用程序被打开两个实例有时候为了避免不必要的错误,应防止同一应用程序被打开两个实例以下一个函数可以达到此项目的,挺有用的!BOOL C××App::AlreadyRunning(){ BOOL bFound = FALSE; // Try to create a mutex with the apps name HANDLE hMutexOneIns转载 2007-05-22 00:32:00 · 1132 阅读 · 0 评论 -
也谈EVC工程移植
也谈EVC工程移植 本文是针对作者本人的一个具体的移植项目,将碰到的所有问题列出来,并给出具体的解决方法。由于是一个具体的项目,因此不能把所有的EVC工程移植问题囊括进来。所以,在移植项目前,建议还是看看以下的文章:循序渐进:将 eMbedded Visual C++ 应用程序迁移到 Visual Studio 2005eMbedded Visual C++ 到 Visual转载 2007-05-21 23:22:00 · 1276 阅读 · 0 评论 -
指针数组、指向指针的指针变量、指向一维数组的指针变量 区别联系
8.3 指针数组与指向指针的指针变量 8.3.1 指针数组 如果数组元素都是相同类型的指针,则称这个数组为指针数组。所谓相同类型的指针是说指针所指向的对象类型是相同的。 例如,语句int *p[5];定义了一个指针数组。在指针数组的定义中有两个运算符:*和[],运算符[]的优先级高于*,所以*p[5]等价于*(p[5]),p[5]表示一个数组,而*表转载 2007-04-03 10:41:00 · 7484 阅读 · 4 评论 -
全国各地 DNS 服务器 IP 总汇
[山东] 202.102.152.3 202.102.128.68 [广东]pdns=202.96.128.143adns=202.96.128.68[上海]pdns=202.96.199.132adns=202.96.209.133[香港]pdns=205.252.144.228[澳门]pdns=202.175.3.8[深圳]pdns=202.96.154.15adns=2转载 2007-06-22 10:57:00 · 2161 阅读 · 0 评论 -
各种流行的界面换肤控件库比较
用VC做程序的时候,如果对界面样式不满意怎么办?自己从各种控件基类继承,然后自绘么?对高手来说,这虽然不能算是难题,但是仍旧比较麻烦,对新手来说,连看什么书都不好说。那就没有更好的方法么?当然有!这就要用到一类称作“界面换肤”的工具包了。 且看这些工具包转载 2007-06-20 10:23:00 · 1765 阅读 · 0 评论 -
候捷網路資源
網路資源以下隨性排列,無次序可言。本欄純粹為了我自己方便。C++ 編譯器免費下載或試用 Borland C++ 5.5 http://www.borland.com/bcppbuilder/freecompiler/cppc55steps.htmlKAI C++ http://www.kai.com/GNU C++ http://gcc.原创 2006-10-18 11:13:00 · 1936 阅读 · 0 评论 -
非虚拟函数与虚拟函数的区别(读《深入浅出MFC》第三章MFC六大关键技术之仿真Frame2有感):
1.当由指针调用由子类(或某一个类)实例化的对象时(不管此指针是指向谁的那个类型的,只要合法),当指针调用此对象中的函数时(不管是子类中添加的还是由父类继承来的),如果此函数是非虚拟函数,则首先在那个类中寻找这个函数,若找不到则依次向父类中寻找,直至找到(如果找不到,那此程序就出错了,呵呵),但不会向下向子类中寻找;如果此函数是虚拟函数,则就要严重关注此实例化对象,不管是先前指针所指向的还是后来又原创 2006-10-17 18:47:00 · 1143 阅读 · 0 评论 -
查找错误的几个调试方法&一些C/C++的文章&一些零碎知识
CWinApp代表整个MFC应用程序所谓“窗口handle”和“C++”结盟,实际上是CWnd对象有一个成员变量m_hWnd,就放着对应的窗口handle。所以,只要你手上有一个CWnd对象或CWnd对象指针,就可以轻易获得其窗口handle:HWND hWnd = pWnd->m_hWnd;----------------在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。堆原创 2006-10-18 18:13:00 · 1354 阅读 · 0 评论 -
一些零碎VC知识
2.可以有多层类,多层结构体,可以相互嵌套。3.继承之我理解继承实际上就是子类把父类的数据与成员全部继承下来,当然,子类实例化时,系统只是为成员数据分配内存空间,而不为成员函数分配空间(在内存中成员函数已经变为一条条指令了),如果包含虚拟函数,就会为虚拟函数分配一个四个字节的地址空间用来指向虚拟表(详见《深入浅出 MFC》P65“类与对象大剖析”)。成员全部继承下来后,根据在父类的设定的访原创 2006-10-17 18:49:00 · 963 阅读 · 0 评论 -
VC基础知识
1.怎样看C++代码的汇编代码例如我想对我的程序优化,想通过看经过编译的汇编代码,在那里看,我用V7.0的设置一个断点,执行到断点后,右键 转到汇编代码------------------------------------2.反编译,把编译好的程序编程可编辑修改的原文件 软件转换工程这个词自己造的吧 目前就部分java可以实现class与java的反编译 其他基本上没有! 反汇编是把机码以汇编指原创 2006-10-12 18:55:00 · 1474 阅读 · 0 评论 -
孙鑫视频教程里第三章的this指针小测试程序
//vc6.0#includeclass Cbase;Cbase *pc = NULL;class Cbase{public: Cbase* p; Cbase() { p = this; pc = this; }public: virtual void fun() { cout }};class Cchild : public Cbase{public: virtual void f原创 2006-10-12 11:48:00 · 2398 阅读 · 3 评论 -
收藏vc++入门
Visual C++ 基本原理// Name: Easyright// Date: 8-1-2003// Homepage: http://www.easyright.net// Email: support@easyright.netFAQ问:阅读以下文章需要具备哪些知识?答:只要会开机就行了,如果大家有C++和面向对象(Object-Oriented)的基础知识,会有事半功倍转载 2006-10-11 13:21:00 · 3764 阅读 · 0 评论 -
深入浅出MFC学习笔记(1)
1. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { ... } 参数: message 相当于WM_COMMAND,WM_DESTROY等 wParam: 如: int wmId, wmEvent; wmId = LOWORD(wParam);//取低原创 2006-10-10 18:12:00 · 2253 阅读 · 0 评论 -
孙鑫VC++讲座笔记-(2)C++
孙鑫VC++讲座笔记-(2)C++ 1 c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。2 C++中结构体和类可以通用,区别主要表现在访问控制方面:struct中默认是public,而 class中默认的是private。3 构造函数最重要的作用是创建对象的本身,C++中每个类可以拥有多个构造函数,但必须至少有一个构造函转载 2006-10-24 10:31:00 · 1151 阅读 · 0 评论 -
孙鑫VC++讲座笔记-(3)MFC程序框架的剖析
孙鑫VC++讲座笔记-(3)MFC程序框架的剖析 1 寻找WinMain人口: 在安装目录下找到MFC文件夹下的SRC文件夹,SRC下是MFC源代码。 路径:MFC|SRC|APPMODUL.CPP:_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){转载 2006-10-24 10:33:00 · 1317 阅读 · 0 评论 -
孙鑫VC视频勘误和说明
一、在视频Lesson2中,在介绍构造函数时,我说:“构造函数最重要的作用是创建对象本身,对象内存的分配由构造函数来完成的”,这句话是错的,对象内存的分配和构造函数没有关系,对象内存的分配是由编译器来完成的,构造函数的作用是对对象本身做初始化工作,也就是给用户提供初始化类中成员变量的一种方式,在类对象有虚表的情况下,构造函数还对虚表进行初始化。另外,我说:“C++又规定,如果一个类没有提供任何转载 2006-10-24 10:37:00 · 1424 阅读 · 0 评论 -
什么是MAC地址
Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。 对于MAC地址,由于我们不直接和它接触,所以大家不一定很熟悉。在OSI(Open System Interconnection,开放系统互连)7层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,第二层为数据转载 2007-06-22 11:17:00 · 7280 阅读 · 0 评论 -
你应当如何学习C++(以及编程)
Javascript是世界上最受误解的语言,其实C++何尝不是。坊间流传的错误的C++学习方法一抓就是一大把。我自己在学习C++的过程中也走了许多弯路,浪费了不少时间。 为什么会存在这么多错误认识?原因主要有三个,一是C++语言的细节太多。二是一些著名的C++书籍总在(不管有意还是无意)暗示语言细节的重要性和有趣。三是现代C++库的开发哲学必须用到一些犄角旮旯的语言细节(但注意,是库设计,转载 2007-06-21 21:07:00 · 1643 阅读 · 0 评论 -
关于 int *p = NULL; char *p = NULL; 的问题:
问题:void main() { int *p = NULL; cout cout } 输出结果为: 0x00000000 0x0012FF7C void main() { char *p = NULL; cout cout原创 2007-03-22 17:18:00 · 4276 阅读 · 1 评论 -
C++Primer 读书笔记 第2章 浏览
解引用操作符*解除pint的引用.在C++中,指针的主要作用是管理和操纵动态分配的内存。对动态分配的内存,唯一的访问方式是通过指针间接的访问。/////////////以下参考别人的//////////////////////////////////////////////////////////////////////2.1节到2.2节 很多人都会觉得第二章很难,作者在第一篇的引原创 2007-03-13 16:53:00 · 1131 阅读 · 0 评论 -
printf、cout 取值输出问题,(从右向左求值,从左向右输出??)??
int i=8;printf("%d/t%d/t%d/t%d/t%d/t%d/n",i,++i,--i,i--,i++,-i--);printf("%d/n", i);vc6.0 debug版本为:8 8 7 8 8 -87vc6.0 Release版本输出为7 7 7 8 8原创 2007-03-09 15:58:00 · 1648 阅读 · 0 评论 -
演绎推理与归纳推理
//////////////////////////////////////////////////////////////////////////////////////////试列举出演绎推理和归纳推理各一例演绎推理是由普通性的前提推出特殊性结论的推理。例子:一个三角形,或者是锐角三角形,或者是钝角三角形,或者是直角三角形。这个三角形不是锐角三角形和直角三角形,所以,它是个钝角三角形。转载 2007-03-07 14:47:00 · 16319 阅读 · 1 评论 -
Source Insight使用教程
作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是Linux内核的组织极为复杂,同时,又不能像windows平台的程序一样,可以使用集成开发环境通过察看变量和函数,甚至设置断点、单步运行、调试等手段来弄清楚整个程序的组织结构,使得Linux内核源代码的阅读变得尤为困难。当然Linux下的vim和emacs编辑程序并不是没有提供变量转载 2006-11-30 10:19:00 · 8459 阅读 · 1 评论 -
孙鑫VC++讲座笔记-(4)MFC消息映射机制的剖析
孙鑫VC++讲座笔记-(4)MFC消息映射机制的剖析 一,消息映射机制1,消息响应函数:(例:在CDrawView类响应鼠标左键按下消息) 1)在头文件(DrawView.h)中声明消息响应函数原型。 //{{AFX_MSG(CDrawView) //注释宏 afx_msg void OnLButtonDown(UINT nFlags, CPo转载 2006-10-24 10:36:00 · 1495 阅读 · 0 评论