Windows 95 系統程式設計大奧秘学习笔记 (转)
Windows 95 系統程式設計大奧秘学习笔记 (转)[@more@] 书名: windows 95 系統程式設計大奧秘(一)(Windows 95 SystemProgramming SECRETS)作者: Matt Pietrek译者: 侯俊杰整理者:高永庆(大连轻工业学院计982) 目錄提要1. Windows 95 有三個非常基礎的核心元件: 16 位元的KRNL386 、32 位元的KERNEL32 、以及ring0 的Vwin32.VXD。如果你把它們放在一起, 就得到了VWINKERNEL32386。2. 如果要充份瞭解Windows 95,你就必須瞭解Portable Executable(PE) 檔案格式. 第1章 透視Windows 951.
足球战术->排兵布阵之interpreter篇 (转)
足球战术->排兵布阵之interpreter篇 (转)[@more@]接上回: .NET/develop/read_article.ASP?id=11439">http://www.csdn.net/develop/read_article.asp?id=11439 排兵布阵时使用interpreter模式,可以让教练不用去hack,而是简单的复用就可以完成复杂的战术。在这个模式中,client是教练,context是球队,abstractexpression是基本打法,teRminalexpression是单个队员的打法,nonterminalexpression是一条线的打法,好处是用类来表示打法,可以用继承来改变或扩展打法;而且"抽象打法树"中各节点的类的实现大体类似,易于实现。缺点是
成功软件开发者的9种编程习惯 5 (转)
成功软件开发者的9种编程习惯 5 (转)[@more@]6. 写好注释 要养成写注释的习惯。特别是别人难以理解的程序或变量一定要注释,一个月后,也许你自己也需要看那注释呢。int x = 100; int y = 1000; if(x < y) a = 0; else a = 1; 你能知道上面的程序意味着什么?如果不知道变量x,y和a指的是什么,那么很难理解。让我们给它标个注释再看吧:/* * 检测损益的程序 */ int x = 100; /* x 是卖书的总额*/ int y = 1000 /* y是做书本的费用*/ int a; /* 确认是否有赢利*/ /* 比较x和y: */ if(x < y) /* 1指损失 */ a = 1;
成功软件开发者的9种编程习惯 6 (转)
成功软件开发者的9种编程习惯 6 (转)[@more@]7. 起名要合理 程序,变量,procedure,structure等名一定要跟它的内容联系起来,变量不要起名如”x”,”y”,”z” 也许你会说笔者在上面举的例子里也用了x,y等,可笔者这样做的理由是他不牵涉到其他程序,实际开发软件的时候,笔者当然会使用有意义的变量名。请看下面例子:void x(int a, int b) { int z; z = a + b; printf("z is %dn", z); } 在这,我们可以知道x做什么,但不知道它意味着什么。a,b,z也一样。让我们稍微改过来再看吧:void sum_of_ages(int jacks_ag
成功软件开发者的9种编程习惯 4 (转)
成功软件开发者的9种编程习惯 4 (转)[@more@]5. 不乱用程序切断(Block) 很多人经常乱用程序切断。使用三个以上的切断是比较难以看懂的程序。请看下面例子:int a = 10; int b = 20; int c = 30; int d = 40; if(a == 10) { a = a + d; if(b == 20) { b = b + a; if(c != b) { c = c + 1; if(d > (a + b)) printf("Made it all the way to the bottom!n"); } } } 这也许是夸张了,但确实有很多人真的这样做。那如何写得更好一点呢?一
成功软件开发者的9种编程习惯 3 (转)
成功软件开发者的9种编程习惯 3 (转)[@more@]4. 不乱用if语句有些人很喜欢用“if”语句,如下:if(a == 0) { a++; return(a); } if(a == 1) { a += 5; return(a); } if(a == 2) { a += 10; return(a); } if(a == 3) { a += 20; return(a); } if(a == 4) exit(1); 有没有比这更好的办法呢?else if语句?不是。好的方法是用“switch-case”语句来写简便的程序:switch(a) { case 0: a++; return(a); case 1: a += 5; return(a); case 2: a += 10; return(a);
成功软件开发者的9种编程习惯 2 (转)
成功软件开发者的9种编程习惯 2 (转)[@more@]2. 要适合使用空格和tab键 C语言是不分辨空格的,因此程序也可以不需要空格一直写下去,但这样的程序会是谁都看不懂的"很有难度"的程序,请看以下例子:if(x==0) {a=b=c=d=MAX; x++;} 这样写,也许会节省空间,但不仅别人,编程的本人也会很难看懂。程序要写得容易看懂!if(x == 0) { a = b = c = d = MAX; x++;} 这样写,看起来不很清楚吗?程序要有确切的空格才容易看得懂。3. 统一使用大括号和切断方式 每个程序员使用大括号({})和改行的方式都有自己的习惯,这样,把
成功软件开发者的9种编程习惯 1 (转)
成功软件开发者的9种编程习惯 1 (转)[@more@]好的原程序做出好的软件 有些人会想:只要程序运行结果好,就不管原程序编得怎样。但绝对不是这样的。软件不是一次性就作完的,有必要做修改,扩展等管理。所以原程序要尽量作成易看懂,管理方便。 这样做,第一是为了软件开发者方便,其次还会影响到软件的性能。管理不方便的程序不会作出好的软件。 希望通过这篇文章能学到好的编程习惯。要理解这文章的内容,你至少要懂得1个开发工具语言。这里举例说明的都是C语言,但你对C语言没有了解也不要担心。这里说明的是原理而不是特定的语
ATL问题集-#13 ~ #14 (转)
ATL问题集-#13 ~ #14 (转)[@more@]/*此文是我将网上的一些文章,自已遇到的问题进行整理,有些是翻译,所有只供学习讨论,如有版权还属于原作者——作者:黄森堂*/ #13 如何使我的控件对IE来说是安全的? 要使控件对IE来说是安全的话,则必需实现IobjectSafety接口,ATL提供了IObjectSafetyImpl包装类,以下代码是演示这个功能,加精是新增加的: class ATL_NO_VTABLE CNoteCtl : public CComObjectrootEx<CComSingleThreadModel>, ... // Derive from IObjectSafetypublic IObjectSafety {...BEGIN_COM_MAP(CN
::细细品味ASP.NET (三):: (转)
::细细品味ASP.NET (三):: (转)[@more@]细细品味ASP.NET (三)青苹果工作室(编译) 01-5-18 上午 09:41:52 页面事件 ? 在此前我提到 ASP.net已经被从头到脚地重写了,但是我并没有指出它是按照面向对象的思路重建的。在对象树的顶部是Page对象,即页面对象,ASP.NET的每个控件、应用程序和页面都是从这个对象中继承来的,也就是说每个页面都是页面对象的一个例示。页面的Load (装载)事件是一个非常重要的事件,如下面的表3代码所示: 表3 使用页面事件 <html> <script language=“VB” runat=“server”> Sub Page_Load
::细细品味ASP.NET (二):: (转)
::细细品味ASP.NET (二):: (转)[@more@]细细品味ASP.NET (二)青苹果工作室(编译) 01-5-17 下午 01:33:55 web表单 ? ASP.net Web Forms就是Web页面,同现在你用 ASP编写代码所做的工作是一样的。但是还不仅仅如此,ASP.NET Web Forms是在一个面向对象的编程模型上设计的,这样代码就能够再利用,并且使应用程序代码与页面内容分隔开。在Visual Basic中,你将一个控件拖曳到一个表单上,然后执行其下的事件程序。在传统的 ASP中,这是不可能的,因为在用户界面控件和它们的服务器端代码之间没有链接存在。但是在ASP.NET中,这样的一个
ATL问题集-#15 ~ #16 (转)
ATL问题集-#15 ~ #16 (转)[@more@]/*此文是我将网上的一些文章,自已遇到的问题进行整理,有些是翻译,所有只供学习讨论,如有版权还属于原作者——作者:黄森堂*/ #15 在COM/ATL中如何处理错误? 基于windows的组件都有支持ISupportErrorInof接口,它允许将组件的错误信息返回给客户端,在VC5以后提供了本地的支持,如下: _com_error( HRESULT hr, IErrorInfo* perrinfo = NULL ) throw( ); _com_error( const _com_error& that ) throw( ); 这个函数检查IErrorInfo接口指针年是否存在,如果存在将抛出_com_error异常对象,你只要
对MFC封装Windows通讯API的研究 (转)
对MFC封装Windows通讯API的研究 (转)[@more@]一、引言 Inte.NET进行网际间通讯,在WWW浏览、FTP、Gopher这些常规服务,以及在网络电话、多媒体会议等这些对实时性要求严格的应用中成为研究的热点,而且已经是必需的了。windows环境下进行通讯程序设计的最基本方法是应用WindowsSockets实现进程间的通讯,为此微软提供了大量基于WindowsSockets的通讯api,如WinSockAPI、WinInetAPI和ISAPI,并一直致力于开发更快、更容易的通讯API,将其和MFC集成在一起以使通讯编程越来越容易。 MFC是VC编程环境最重要的组成部分,它为用户提供
网络安全测试软件internet scanner学习笔记(二) (转)
网络安全测试软件internet scanner学习笔记(二) (转)[@more@]重点:1. 策略编辑器中策略的公共设置: Common SettingsThe Common Settings folder contains global settings that can be enabled for a policy. Some of these settings may apply to a group of vulnerability checks, decreasing the amount of time needed to enable all the checks that use the setting.公共设置文件夹包括为策略设置能够被激活的全局设置。这些也许适用一组弱点检查,使用这个设置来减少大量的所有允许的这些设置所花费的时间。 配置公
双语或多语成品软件的编制 (转)
双语或多语成品软件的编制 (转)[@more@]双语或多语成品软件的编制吕维·CPCW 只用一套源代码就可以方便地支持多种文字和多个地域,那么这个软件就可以方便地被翻译成本地版本,这个过程叫做地域化(Localization)。怎样才能不修改任何源代码就使之能动态地转换到不同的地域资源上呢?那就是使用windows的程序特性之一?-资源。把在软件中用到的可见资源维系在一个资源DLL(Dynamic Link Library动态链接库)中,就能使地域化很容易地被实现,因为它把具体的文字组件单独提取放在一个文件中,所以,一个可执行文件就可以装载几种不同
pronote的说明 (转)
pronote的说明 (转)[@more@] pronote 程序记录,可以添加.修改,删除.支持查询. 帮你管理你的编程技巧,开放源代码,可自由更改. 本软件为..............................gnu 请在修改后给作者一份,(Mailto:czylj.NETease.com">czylj@netease.com)(不带数据) 第一版: ver 0.8 贴子: http://www.csdn.net/expert/topic/126/126230.shtm 程式的下载 http://czyzj.my.stuhome.net/mypronote.ziphttp://tditdi.home.chinaren.com/mypronote.zip http://go6.163.com/~czylj/mypronote.zip 源码的下载 http:/
Menu Basics (转)
Menu Basics (转)[@more@]Menu Basics Let's start by defining a few terms. The menu bar that appears at the top of a window is an application's top-level menu, and the commands in it are called top-level menu items. The menu that appears when a top-level menu item is clicked is a drop-down menu, and items in that menu are referred to as menu items. Menu items are identified by integer values called menu item IDs or command IDs. windows also supports popup menus that look like drop-down menus but
Windows的保护模式 (转)
Windows的保护模式 (转)[@more@]windows的保护模式 孙喜明 一般来说,80x86(80386及其以后的各代cpu)可以在三种模式下运转:实模式,保护模式,V86模式。实模式就是古老的MS-DOS的运行环境。Win95只利用了两种模式:保护模式和V86模式。 为什么要进入保护模式 保护模式有许多优越性。其中最最直接的好处就是:你的程序可以利用更多的内存了! 不要以为这是什么大不了的问题,我相信每一个曾在MS-DOS下写程序的人都有一个苦恼:怎样在程序中开个足够大的数组?动不动就会堆栈溢出,许多事都不能做了。不要怨Turbo C
数据挖掘概述(又) (转)
数据挖掘概述(又) (转)[@more@]数据挖掘工具是怎样准确地告诉你那些隐藏在数据库深处的重要信息的呢?它们又是如何作出预测的?答案就是建模。建模实际上就是在你知道结果的情况下建立起一种模型,并且把这种模型应用到你所不知道的那种情况中。比如说,如果你想要在大海上去寻找一艘古老的西班牙沉船,也许你首先想到的就是去找找过去发现这些宝藏的时间和地点有哪些。那么,经过调查你发现这些沉船大部分都是在百慕大海区被发现,并且那个海区有着某种特征的洋流,以及那个时代的航线也有一定的特征可寻。在这众多的类似特征中,你将它
VC++中用内存映射文件 (转)
VC++中用内存映射文件 (转)[@more@]VC++中用内存映射文件2000-01-30· 粟利民·电脑报 在软件的开发过程中,有时需要控制一些程序使他们不能同时运行,也就是多个程序间互斥运行(还包括禁止同一程序运行多个实例)。针对这一问题,我们在Visual C++6.0中利用内存映射文件实现了多个程序间的互斥运行。内存映射文件可以创建一个没有和磁盘文件相联系的内存对象,将文件的信息映射到一个进程的地址空间上,我们可以访问该文件中的数据,就如同它位于内存中一样。同时,在程序设计中可以给内存映射文件对象起一个名字,这个名字在整个