??xml version="1.0" encoding="utf-8" standalone="yes"?>99久久成人18免费网站,久久久久久久亚洲Av无码,亚洲午夜久久久久妓女影院http://www.shnenglu.com/mzty/category/5778.html<a href = "http://www.shnenglu.com/mzty/archive/2007/03/02/19109.html"><font size = 3 >{C++ 基础}<font/></a> <a href = "http://www.shnenglu.com/mzty/archive/2007/08/13/29922.html"><font size = 3 >{C++ 高}<font/></a> <a href = "http://www.shnenglu.com/mzty/archive/2007/04/16/22064.html"><font size = 3 >{C#界面QC++核心法}<font/></a> <a href = "http://www.shnenglu.com/mzty/archive/2007/03/04/19163.html"><font size = 3 >{设计模式}<font/></a> <a href = " http://www.shnenglu.com/mzty/archive/2007/03/04/19167.html"><font size = 3 >{C#基础}<font/></a> zh-cnFri, 20 Feb 2009 10:03:59 GMTFri, 20 Feb 2009 10:03:59 GMT60《Windwos via C++》之_֍http://www.shnenglu.com/mzty/archive/2008/07/13/56001.html梦在天梦在天Sun, 13 Jul 2008 02:37:00 GMThttp://www.shnenglu.com/mzty/archive/2008/07/13/56001.htmlhttp://www.shnenglu.com/mzty/comments/56001.htmlhttp://www.shnenglu.com/mzty/archive/2008/07/13/56001.html#Feedback6http://www.shnenglu.com/mzty/comments/commentRss/56001.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/56001.html  来自Q梦在天涯C++博客(http://www.shnenglu.com/mzty/)

引言

作ؓ一?/span>windowspȝ上图形Y件开发者已l有3个多q头了,在此q程中有不少的经历和l验Q非帔R兴与大家分nQ今天主要是?/span>windows via C++》一书的阅读心得Q所以主要谈到的?/span>windows?/span>C++的开发?/span>

 

?/span> C++语言

我们知道C++是一?/span>ISO的面向对象的语言Q下面我介绍他的三个斚wQ也正是q三个主要方面决定了他被q泛的用。第一Q?/span>C++是一个功能强大的语言。比?/span>C++语言本n提供的基?/span>C语言的内嵌类型,数组Q结构体和指针等Q?/span>C++?/span>C新加入的面向对象?/span>ClassQ承,多态和模板{,q有C++标准模板库(STLQ提供的实际开发当中常用的数据l构和算法的实现Q第二,大量的开源和W三方库Q如果在windows上?/span>C++开发,我们q可以借助microsoft?/span>C++提供的强有力的支持,首先?/span>VS~译器,q有UI?/span>MFCQ还?/span>ATL{;除此之外我们q可以看到其他的许多?/span>microsoft的开源的和第三方的支持,比如?/span>Boost很大E度的扩充了STLQ提供了更多更高U的功能Q还?/span>Loki?/span>C++与设计模式结合v来,q有很多的第三方?/span>UI库,比如QTQ?/span>WxWindowsQ?/span>WTLQ?/span>GTK{,W三方的|络通信库,比如ACEQ?/span>StreamModule{,W三那的XML库,比如XercesQ?/span>CMarkupQ?/span>tinyxml{,W三方的U学计算库,比如Blitz++Q?/span>MTL{,W三方的游戏开发库Q比?/span>OGREQ?/span>KlayGE{,W三方的U程库,比如C++ ThreadsQ?/span>ZThreads{,q有其他的很多。第三,C++的高性能。这个也是毋庸质疑的Q我们知道的大部分的操作pȝQ嵌入式开发,游戏Q图像Y件离不开C++Q这都是?/span>C++的高性能有很大的关系。但从这一Ҏ看,q就是很多现代的其他的高U语a没有的,所?/span>C++以后仍然有很长的路要走?/span>

 

?/span> ?/span>Windows via c++》之l典

上面说了C++语言本nQ这里具体到windowspȝ?/span>C++的开发,我们要基?/span>windowspȝ开发YӞ难免的要和windowspȝ打交道,比如pȝ本n对字W编码的支持Q系l的异常处理机制Q线E的创徏理Q进E的创徏理Q内存和虚拟内存的用,堆栈的操作,DLL的用等。上面提到的q些都不?/span>C++语言本n的职责,是需要操作系l提供的支持Q而所有这些内Ҏ是?/span>windows via C++》所覆盖的内容,也正是本书很好的?/span>C++?/span>Windowsq接hQ引?/span>C++E序员走?/span>windows的底层,q也正是本书的经怹?/span>!再次感谢作?/span>Jeffrey Richter的伟大A献!

 

1Q字W编码:字符~码作ؓ字符串的基础Q自然而然成了我们Y件开发必不可~少的基矻I那么什么是字符~码那?字符~码是字符在计机内部的表CŞ式,我们都知道在计算机内部,所有的信息最l都表示Z个二q制的字W串。每一个二q制位(bitQ有0?/span>1两种状态,因此八个二进制位可以组合出256U状态,q被UCؓ一个字节(byteQ。上个世U?/span>60q代Q美国制定了一套字W编码,对英语字W与二进制位之间的关p,做了l一规定。这被称?/span>ASCII码,一直沿用至今?/span>ASCII码一p定了128个字W的~码Q因Z只占用了一个字节的后面7位,最前面?/span>1位统一规定?/span>0。英语用128个符L码就够了Q但是用来表C其他语aQ?/span>128个符h不够的。所以后来就各国有了各国的编码,比如日文中的汉字q远大于256个,所以日文用如果第一个字W在0 x 8 1 ?/span>0 x 9 F 之间Q或者在0 x E 0 ?/span>0 x F C 之间Q那么就必须观察下一个字节,才能定字符串中的这个完整的字符。这样他׃用一个或两个字节来表CZ个字W,q种~码被称为双字节字符集(D B C S Q。由于世界上存在着多种~码方式Q这使得同一个二q制数字可以被解释成不同的符受因此,要想打开一个文本文Ӟ必ȝ道它的编码方式,否则用错误的~码方式解读Q就会出Cؕ码。这个时?/span>Unicode出C他将世界上所有的W号都纳入其中。每一个符号都l予一个独一无二的编码,那么q问题׃消失。但?/span>unicode也有不同的实玎ͼ主要的有三种Q?/span>UTF-16Q其本n是标准?/span>Unicode~码ҎQ又UCؓUCS-2Q它固定使用16 bits(两个字节)整数来表CZ个字W?/span>UTF-32Q又UCؓUCS-4Q它固定使用32 bits(四个字节)整数来表CZ个字W?/span>UTF -8Q最q泛的用的UTFҎQ?/span>UTF-8使用可变长度字节来储?/span>Unicode字符Q例?/span>ASCII字母l箋使用1字节储存Q重x字、希腊字母或襉K字母等使用2字节来储存,而常用的汉字p使用3字节。辅助^面字W则使用4字节?/span>UTF-8更便于在使用Unicode的系l与现存的单字节的系l进行数据传输和交换。与前两个方案不同:UTF-8以字节ؓ~码单元Q没有字节序的问题。但是不是哪种unicode的实现都可以包含世界所有的字符Q解册Y件本地化的难题?/span>

 

Windows?/span>2000以前使用ASCIIQ?/span>2000及以后的pȝ都?/span>unicode来编码,但是需要注意的?/span>Windows2000既支?/span>UnicodeQ也支持ANSIQ因此可以ؓL一U开发应用程?/span>.如果调用M一?/span>Windows函数q给它传递一?/span>ANSI字符Ԍ那么pȝ首先要将字符串{换成UnicodeQ然后将Unicode字符串传递给操作pȝ。如果希望函数返?/span>ANSI字符Ԍpȝ׃首先?/span>Unicode字符串{换成ANSI字符Ԍ然后结果返回给你的应用E序。所有这些{换操作都是在你看不见的情况下发生的。当Ӟq行q些字符串的转换需要占用系l的旉和内存。比如同一个函?/span>CreateWindowEx()Q在内部其实是当ASCII是调?/span>CreateWindowExA()Q而当unicode时调?/span>CreateWindowExW()。同?/span>windowspȝq给我们提供?/span>ASCII?/span>unicode间的转化函数MultiByteToWideChar(Q和WideCharToMultiByte()?/span>

 

2Q进E和U程Q进E通常被定义ؓ一个正在运行的E序的实例,它由两个部分l成Q第一Q?/span> 一个是操作pȝ用来理q程的内核对象,内核对象也是pȝ用来存放关于q程的统计信息的地方Q第二,是地址I间Q它包含所有可执行模块?/span> D L L 模块的代码和数据Q它q包含动态内存分配的I间Q如U程堆栈和堆分配I间。线E是应用E序执行时的最单位,同样U程也是׃个部分组成的Q第一Q?/span> 一个是U程的内核对象,操作pȝ用它来对U程实施理Q内核对象也是系l用来存攄E统计信息的地方Q第二,U程堆栈Q它用于l护U程在执行代码时需要的所有函数参数和局部变量?/span>

 

q程是不zL的,从来不执行Q何东西,它只是线E的容器Q若要ɘq程完成某项操作Q它必须拥有一个在它的环境中运行的U程Q该U程负责执行包含在进E的地址I间中的代码Q当创徏一个进E时Q系l会自动创徏它的W一个线E,UCؓȝE,然后Q该U程可以创徏其他的线E,而这些线E又能创建更多的U程。如果在单进E环境中Q你有两个或多个U程正在q行Q那么这两个U程共享单个地址I间。这些线E能够执行相同的代码Q对相同的数据进行操作。这些线E还能共享内核对象句柄,因ؓ句柄表依赖于每个q程而不是每个线E存在?/span>

windows提供和很多函数来创徏和管理线E和q程Q比?/span>CreateThreadQ)Q?/span>ExitThreadQ)Q?/span>TerminateThreadQ)Q?/span>GetCurrentThread()Q?/span>CreateProcessQ)Q?/span>ExitProcessQ)Q?/span>TerminateProcess Q)Q?/span>GetCurrentProcessQ){?/span>

 

3Q线E同步和U程局部存储:׃同一q程的所有线E共享进E的虚拟地址I间Qƈ且线E的中断是汇~语aU的Q所以可能会发生两个U程同时讉K同一个对象(包括全局变量、共享资源?/span>API函数?/span>MFC对象{)的情况,q有可能DE序错误。属于不同进E的U程在同时访问同一内存区域或共享资源时Q也会存在同L问题。因此,在多U程应用E序中,常常需要采取一些措施来同步U程的执行?/span>

 

windows提供?/span>3中同步机Ӟ分别是信号量SemaphoreQ互斥量MutexQ关键代码段CriticalSection。其中信号量SemaphoreQ是一个可以限制对指定的界段q行讉K的线E的数目的数据结构。互斥量Mutex和关键代码段CriticalSectionQ他们的作用是相同的Q都是用来保证某时刻只有一个线E能够访问全局或静态的资源。区别是Q?/span>Mutex是内核对象,可以讄{待时旉Q可以在不同的进E的U程中用,但是所消耗的旉也比较多?/span>CriticalSection?/span>Mutex相反?/span>

 

U程局部存储(TLSQ,可以为全局或静态变量对不同的线E有不同的拷贝?/span>

 

4Q线E池Q可以实现在E序中根据需要动态的创徏U程Q比如在server端,Ҏ讉K的用L多少来创建线E的多少。在windows2000以后增加了创建线E池?/span>APIQ比?/span> QueueUserWorkItemQ)?/span>

 

5) U程Q用L的线E机Ӟ比线E小的单位,开发h员负责管理纤E的调度Q同时负责确定纤E何时在U程旉片上下文中运行,一般不会带来性能的提高,主要的目的是为开发h员调度多个不需要ƈ行执行的d提供一个便L机制。单U程可以包含一个或多个U程。就内核而言Q线E是抢占调度的,是正在执行的代码。然而,U程每次执行一个纤E的代码Q你军_I竟执行哪个U程Q你可以调用ConvertThreadToFiberQ)已有的U程转化位纤E,当对U程的执行环境进行分配和初始化后Q就可以执行环境的地址与线E关联v来,该线E被转换成一个纤E,而纤E则在该U程上运行。现在,如果你的U程Q线E)q回或调?/span>ExitThread函数Q那么纤E和U程都会l止q行。除非打创建更多的U程以便在同一个线E上q行Q否则没有理由将U程转换成纤E。若要创建另一个纤E,该线E(当前正在q行U程的线E)可以调用CreateFiber函数。但是调?/span>CreateFilber创徏的纤Eƈ不执行,直到调用SwitchToFiber函数。若要撤消纤E,可以调用DeleteFiber函数?/span>

 

6) 作业Q作业可以看作是一l进E的容器,把这些进E当作一个整?/span>,对这个整体整个加入更多的限制. 因ؓWindowsq不l护q程之间的父/子关pR即使父q程已经l止q行Q子q程仍然会l运行?/span>Microsoft Windoss 2000提供了一个新的作业内核对象,使你能够进E组合在一Pq且创徏一?#8220;沙框”Q以侉K制进E能够进行的操作。最好将作业对象视ؓ一个进E的容器。但是,创徏包含单个q程的作业是有用的,因ؓq样一来,可以对该进E加上通常情况下不能加的限制。创Z个新作业内核对象可以调用CreateJobObjectQ)Q另一个进E要讉K作业Q可以通过OpenJobObjectQ)Q应该知道,关闭作业对象q不会迫使作业中的所有进E终止运行。该作业对象实际上做上了删除标记Q只有当作业中的所有进E全部终止运行之后,该作业对象才被自动撤消。注意,关闭作业的句柄后Q尽该作业仍然存在Q但是该作业无法被所有进E访问。通过调用SetInformationJobObject()可以l作业加上各U限?/span>.查询限制QueryInformationJobObjectQ)Q将q程攑օ作业AssignProcessToJobObjectQ)Q若要撤销作业中的q程调用TerminateJobObjectQ)?/span>

 

7) 虚拟内存Q内存映文件和堆栈Q每个进E都被赋予它自己的虚拟地址I间。对?/span>3 2位进E来_q个地址I间?/span>4 G B,其中默认?/span>2G是用户可以用的。由于每个进E可以接收它自己的私有的地址I间Q因此当q程中的一个线E正在运行时Q该U程可以讉K只属于它的进E的内存。属于所有其他进E的内存则隐藏着Qƈ且不能被正在q行的线E访问。注意在Windows 2000中,属于操作pȝ本n的内存也是隐藏的Q正在运行的U程无法讉K。这意味着U程常常不能讉K操作pȝ的数据?/span>

 

Windows提供?/span>3U进行内存管理的ҎQ它们是W一Q?/span> 虚拟内存Q最适合用来理大型对象或结构数l?/span> W二Q内存映文Ӟ最适合用来理大型数据(通常来自文gQ以及在单个计算Zq行的多个进E之间共享数据。第三, 内存堆栈Q最适合用来理大量的小对象?/span>

 

在较老的操作pȝ中,物理存储器被视ؓ计算机拥有的R A M的容量。换句话_如果计算机拥?/span>1 6 M B?/span>R A MQ那么加载和q行的应用程序最多可以?/span>1 6 M B?/span>R A M。今天的操作pȝ能够使得盘I间看上d像内存一栗磁盘上的文仉常UCؓ|Ӟ它包含了可供所有进E用的虚拟内存?/span>

 

内存映射文g与虚拟内存一P内存映射文g可以用来保留一个地址I间的区域,q将物理存储器提交给该区域。它们之间的差别是,物理存储器来自一个已l位于磁盘上的文Ӟ而不是系l的|件。一旦该文g被映,可以访问它Q就像整个文件已l加载内存一栗?/span>

 

堆栈可以用来分配许多较小的数据块。例如,若要寚w接表和链接树q行理Q最好的Ҏ是用堆栈,堆栈的优ҎQ可以不考虑分配_度和页面边界之cȝ问题Q集中精力处理手头的d。堆栈的~点是,分配和释攑ֆ存块的速度比其他机制要慢,q且无法直接控制物理存储器的提交和回收。进E和U程都有自己的堆栈,而且大小可以更改?/span>

 

8) DLL使用Q?/span>windows中广泛的使用dll来实现模块化Q?/span>dll的用一般有静态和动态加载,静态加载一般通过~译器的讄来实玎ͼ动态加载通过使用loadlibraryQ)?/span>freelibraryQ)来实现?/span>

 

9Q结构化异常处理Q?/span>SEHQ:SEH ?/span> Windows pȝ提供的异常处理功能,跟开发工h兟?/span>windows上其他程序中的异常处理一般底层都是{化ؓSEH来实现。实际上Q当你写一?/span>C++ throw语句Ӟ~译器就生成一个对Windows?/span>RaiseException函数的调用。用?/span>throw语句的变量传递给RaiseException作ؓ附加的参数?/span>

 

?/span> ?/span>Windows via c++》之新增

 

1Q?/span>64位支持:最新的pȝ?/span>64的版本,q样的话q程׃再有最?/span>4G的内存限Ӟ但是׃64位系l与以前?/span>32位系l其实是一?/span>codebaseQ所以基本有所的接口都与以?/span>32位保持椅子,q样的话我们以前的所有的32位的E序只需要从新编译就可以q行?/span>64pȝ上,需要特别注意的是指针和句柄的从32位到64位的转变?/span>

 

2Q?/span>windows vista/2008ҎQ提供了更加安全?/span>stirng函数Q一些内核对象的改变{?/span>

 

3Q可重复使用的代码:大量可在我们日常开发中重复使用的代码和让我们更好的理解q程的源代码processInfoQ?/span>LockCop{?/span>

 

?/span> ȝ

MQ通过阅读?/span>Windows via C++》我们更好的了?/span>windowspȝQ更好的?/span>windowsq行C++开发!推荐windows?/span>C++开发h员可以一读!



梦在天 2008-07-13 10:37 发表评论
]]>
windows开发经典图书推?/title><link>http://www.shnenglu.com/mzty/archive/2008/07/10/55775.html</link><dc:creator>梦在天</dc:creator><author>梦在天</author><pubDate>Thu, 10 Jul 2008 01:19:00 GMT</pubDate><guid>http://www.shnenglu.com/mzty/archive/2008/07/10/55775.html</guid><wfw:comment>http://www.shnenglu.com/mzty/comments/55775.html</wfw:comment><comments>http://www.shnenglu.com/mzty/archive/2008/07/10/55775.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/mzty/comments/commentRss/55775.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mzty/services/trackbacks/55775.html</trackback:ping><description><![CDATA[不能不说是经典啊Q我觉的是非常的l典啊!感谢囄Q借首一用哦Q?br><br><img height=534 alt="" src="http://www.shnenglu.com/images/cppblog_com/mzty/7317/o_yitiantulong.JPG" width=993 border=0><br><br>参考:<a >http://www.cnblogs.com/turingbooks/archive/2008/07/04/1235964.html</a><br>更多囄图书可以看:<a >http://www.cnblogs.com/turingbooks/</a> <br><br>购买Q?a >http://www.china-pub.com/static/zt_mb/zt_huodong_0808.asp?filename=jsj_tlms_080702</a><img src ="http://www.shnenglu.com/mzty/aggbug/55775.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mzty/" target="_blank">梦在天</a> 2008-07-10 09:19 <a href="http://www.shnenglu.com/mzty/archive/2008/07/10/55775.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>盖茨53qh生大事记http://www.shnenglu.com/mzty/archive/2008/06/18/53911.html梦在天梦在天Wed, 18 Jun 2008 09:35:00 GMThttp://www.shnenglu.com/mzty/archive/2008/06/18/53911.htmlhttp://www.shnenglu.com/mzty/comments/53911.htmlhttp://www.shnenglu.com/mzty/archive/2008/06/18/53911.html#Feedback0http://www.shnenglu.com/mzty/comments/commentRss/53911.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/53911.html
        《连Uѝ杂志近日撰文称Q微软创始hD事会d比尔·盖茨(Bill Gates)于7月正式退出微软的日常q营Q全w心投入慈善事业。盖茨的do很多Z依不舍,不仅因ؓ他白手v家的传奇l历ȀqZ矢志前进Q而且Q在盖茨的胦富背后,q隐藏着一U更为根本的东西Q值得我们LI。在盖茨与我们告别之际,让我们来回顾一下他走过?0多年的难忘瞬间?

  20世纪50q代

  1955q?0?8?

  威廉-亨利·盖茨三世出生于西雅图。祖母奥黛丽l他起了一个外号—?#8220;特利”(Trey)QTrey在英语中的意思是三点的牌、骰子或骨牌。盖茨后来也实成了一名扑克牌高手?/p>

  20世纪60q代

  1967q?/p>

  盖茨上六qQ学习成l不佻I他充满困惑地问妈妈,“您曾试思考吗Q?#8221;

  1967q秋

  盖茨的父母把他送进了湖边学?Lakeside School)Q这是西雅图一所男子学校。他是班里最矮的学生?/p>

  1968q?/p>

  盖茨和湖边学校同班同学保|?#183;艾u(Paul Allen)从手册中学会了Basic语言。几周后Q这两个家伙便学校用于支付PDP-10电脑使用旉?000元q度预算花得一q二净。他们俩不久即与电脑中心公司{了一份合U,向其报告PDP-10电脑中存在的软g~陷Q而报酬是免费使用电脑?/p>

  20世纪70q代

  1971q?/p>

  盖茨为湖边学校编写程序,包括一个设计班U课E表的程序?/p>

  1973q??/p>

  盖茨考入哈佛大学。他的学习成l很不稳定。他有很多坏习惯Q经常旷译֎~程、玩牌,不爱zMQ喜Ƣ比萨饼和碳酔R料。他与住在同一个宿舍的史蒂?#183;鲍尔?Steve Ballmer)lؓ好友?/p>

  1975q??/p>

  艾u无意中看C《大众电子》的面Q上面是Altair 8800电脑的照片和“全球W一台对抗商业模式的微型电脑装置”的大字标题。艾伦买了一本,q冲q盖茨的戉K。几天后Q盖茨给Altair电脑刉商 MITS打去电话Q告诉该公司他和艾u能ؓ8800电脑开发出Basic语言?/p>

  1975q???/p>

  盖茨和艾伦完成Basic开发,其?000元外加最高达18万美元的版税卖给MITS公司?/p>

  1976q?1?6?/p>

  盖茨和艾伦注册了微Y(Microsoft)商标。他们一度考虑以艾伦与盖茨(Allen & Gates)作ؓ公司名称Q后提出Micro-SoftQ但他们军_中间的q字W去掉,于是微Y此诞生。当时艾?3岁,盖茨21岁?/p>

  1977q??/p>

  盖茨从哈佛大学休学,在新墨西哥州阿尔伯克基创Z微YQMITS总部也设在此地?/p>

  1977q?/p>

  盖茨的秘书多ơ在微Y办公大楼内发现盖茨h在地板上呼呼大睡。他仍喜Ƣ吃比萨|同时对属下要求严|l常与同事争辩。盖茨经常说的一句话是:“q是我有史以来听说的最愚蠢的事情?#8221;

  1977q底

  盖茨多次因驾驶保时捷911速而被警方逮捕Q还有一ơ则是无照驾驶。这可害苦了艾uQ他保释盖茨的经历至有一ơ?/p>

  1978q?2?/p>

  微Yq终销售额过100万美元?/p>

  1979q???/p>

  微Y公司总部q至华盛州贝尔l尤市?/p>

  20世纪80q代

  1980q??8?/p>

  盖茨与IBM{v合同Q同意ؓq家PC刉商开发Y件。后来,他以5万美元买了一套名为QDOS的操作系l,E加改进q更名ؓDOSQ便授权IBM使用?/p>

  1981q??2?/p>

  IBM开始销售具有MS-DOS 1.0的PC?/p>

  1982q?/p>

  在上市销售的W一q_MS-DOS被授权于50个硬件制造商使用?/p>

  1983q??8?/p>

  艾u因n患霍奇金氏病被迫辞去微Y副总裁一职。他C一?a class=akey target=_blank>队,创徏了一个音乐博物馆Q拥有世界上W三大游艇?/p>

  1983q?1?0?/p>

  Windows揭开秘面纱。Windows是MS-DOS的g伸,可提供图形用L面?/p>

  1984q??4?/p>

  盖茨出席了Macintosh的上市宣传活动——微软是W一批ؓҎ电脑开发Y件的公司之一?/p>

  1985q?/p>

  有报道称盖茨_暴辱骂一位女高管Q后者要求调d位?/p>

  1985q??2?/p>

  l过10q的奋斗Q微软品的销售额辑ֈ1.4亿美元?/p>

  1986q??3?/p>

  微Y以每?1元公开发售股票。当天微软股h收于28元Qؓ公司{w?100万美元?/p>

  1987q?/p>

  盖茨在曼哈顿召开的微软新d布会上邂逅梅琌·弗朗?Melinda French)?/p>

  1989q???/p>

  微Y推出Office办公软g?/p>

  20世纪90q代

  1990q??3?/p>

  盖茨在母亲节q一天提出微软公叔R层退休时间表?/p>

  1990q??/p>

  国联邦贸易委员会对微Y和IBM在PC软g市场可能存在的勾l行为展开调查?/p>

  1993q??1?/p>

  在从佛罗里达州飞往襉K囄包机上,盖茨向梅琌求婚。盖茨还安排飞机在奥马哈降落Q带着梅琳辑֐好友沃u·巴菲?Warren Buffett)一同出去购物?/p>

  1993q??0?/p>

  国司法部从联邦贸易委员会接对微Y的调查?/p>

  1994q???/p>

  盖茨和梅琌在夏威夷拉奈岛上D行了型婚礼。ؓl新婚妻子一个惊喜,盖茨Ҏ安排梅琳达最喜欢的歌手威?#183;尔?Willie Nelson)在婚Cg表演?/p>

  1994q??/p>

  好消息:盖茨首次M了《连Uѝ杂志封面。坏消息Q美国政府对微Y展开了反垄断调查?/p>

  1994q??/p>

  微Y同意接受国政府{v的法令,承诺攑ּ极端的反竞争商业行ؓ(例如Q要求硬件制造商为其所生的配|特定微处理器的所有电脑支付MS-DOS授权费,即该电脑没有安装这一操作pȝ)?/p>

  1994q?1?1?/p>

  盖茨?080万美元购得达·芬奇的《哈默手Eѝ?Codex Hammer)——达·芬奇亲笔写下?2늧学手Eѝ他同意《哈默手Eѝ公开展示?/p>

  1995q?/p>

  盖茨出现在可口可?据报道他喜欢喝健怡可?的商业广告中Q这位亿万富搜遍全w口袋,L购买饮料的零钱?/p>

  1995q??7?/p>

  39岁的盖茨?29亿美元的个h财富成ؓ世界首富。微软在1995q的收入辑ֈ59亿美元,拥有17,801名员工?/p>

  1995q??4?/p>

  微Y推出|络览器Internet Explorer?/p>

  1996q??/p>

  盖茨W二ơ登上《连Uѝ杂志封面,q次是用Photoshop软g处理q的他裹着袍的照片?/p>

  1996q?2?/p>

  微Y股h创下新高——同比上?8%。从理论上讲Q那一q_盖茨每天的收入高?000万美元?/p>

  1997q?0?0?/p>

  因违?994q签|的协议Q美国法院对微Y处以每天100万美元的|款。美国司法部Uͼ微Y要求g刉商甌Windows 95授权Ӟ必须在其g产品中绑定Internet ExplorerQ由此违反了q一协议?/p>

  1998q???/p>

  盖茨在比利时布鲁塞尔会见比利时政府官员和企业家时Q遭到奶油蛋p的袭击。事后,盖茨开玩笑_“q块蛋糕可不怎么好吃”?/p>

  1998q??8?/p>

  国司法部和20个州的L察官认ؓ微Y网l浏览器l定到其操作pȝQ违反了相关规定Q由此对微Y提出赯?/p>

  1998q?1??/p>

  在一D作证录像中Q当盖茨表示自己从未蓄意竞争对手赶Y件市场时Q他的n子微微颤抖。医生据此认为盖茨可能患有亚斯伯格症候群(Asperger's syndrome)?/p>

  1999q?/p>

  盖茨和妻子将威廉·盖茨基金会更名ؓ比尔与梅琌·盖茨基金会,q提Z减少世界上不公^现象的目标?/p>

  21世纪?/strong>

  2000q??3?/p>

  盖茨辞去微YCEO一职,成ؓ公司首席软g工程师,大权交l鲍默?/p>

  2000q???/p>

  国联邦地区法院法官托马?#183;潘菲d·杰克?Thomas Penfield Jackson)裁定微Y应一分ؓ二?/p>

  2000q?1?/p>

  盖茨W三ơ登上《连Uѝ杂志封面,q次是ؓ了揭开微Y反垄断案后鲜Zh知的故事?/p>

  2001q??8?/p>

  国哥u比亚地区上诉法院推翻杰克逊法官的裁决?/p>

  2002q?

  据针对中国内地和香港q轻人的调查昄Q盖茨取代了毛泽东在他们心中的偶像地位?/p>

  2005q???/p>

  盖茨在白金汉宫接受英国女王授予的骑士勋章Q此前,鲁_·朱利安尼和斯蒂文·斯皮伯格都曾获得这一D荣。盖茨此后有资格在名字后面加上字?#8220;KBE”(英帝国爵U勋??/p>

  2005q?2?/p>

  盖茨夫妇和爱兰U2乐队d波诺当选ؓ国《时代》周?005q度人物?/p>

  2006q??5?/p>

  盖茨宣布Q他在两年内逐步退出公司的日常事务理?/p>

  2006q??6?/p>

  在得到巴菲特300多亿元捐款后,比尔与梅琌·盖茨基金会规模壮大一倍,成ؓ世界最大的慈善基金会?/p>

  2008q??/p>

  《福布斯》发?8q全球富豪排行榜Q蝉?3q首富桂冠的盖茨?80亿美元的资dg滑至W三的位|。而盖茨的牌友?#8220;股神”巴菲特则取代他问鼎冠军宝座?杨琳)



梦在天 2008-06-18 17:35 发表评论
]]>
构徏可扩展的应用E序http://www.shnenglu.com/mzty/archive/2008/06/06/52381.html梦在天梦在天Fri, 06 Jun 2008 09:26:00 GMThttp://www.shnenglu.com/mzty/archive/2008/06/06/52381.htmlhttp://www.shnenglu.com/mzty/comments/52381.htmlhttp://www.shnenglu.com/mzty/archive/2008/06/06/52381.html#Feedback3http://www.shnenglu.com/mzty/comments/commentRss/52381.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/52381.html
一 构徏可扩展的应用E序

什么是可扩展的应用E序Q没有标准的定义Q一些实例:
EclipseQFirefoxQOfficeQOgre, AutoCAD, pro/e, other design software...

?可扩展应用程序开发过E?br>   开发过E我们尽量的使我们的软g能够适应变化Q能够很Ҏ的增加或修改功能Q不可避免的要用design patternQ当有新的需求进入的时候,原有的架构不能满求,q时要refactoringQ其实agile software 他强调的׃软g是一个不断的q代的过E,要跟着用户的需求不对的变化QM使我们的应用E序有好的frameworkQ好的architectureQ?br>
?nbsp;Plug-ins插g模式
1) C++ 主要技术:
   LoadLibrary()/GetProcAddress()/FreeLibrary() 
   C++cd如下Q?br>
   samples代码下蝲Q?a href="http://www.shnenglu.com/Files/mzty/Plugins.zip">http://www.shnenglu.com/Files/mzty/Plugins.zip


2QC#主要技术:
      Assembly.Load() / LoadFile() / LoadFrom() Q区别:LoadFile只load本dllQLoadFrom会load其他引用到的dllQ?br>      Type.GetInterface() / IsInterface() / GetMethod() / GetProperty() / / …
      Activator.CreateInstance (Type) / Assembly.CreateInstance(String) / Type.GetConstructor().invoke() 
      C#cd如下Q?br>
      sample代码下蝲Q?a href="http://www.shnenglu.com/Files/mzty/Plugins.zip">http://www.shnenglu.com/Files/mzty/Plugins.zip

3QCLI\C++,Managed C++主要目的Q(使应用程序可以同时支持NativeC++和net的pluginsQ?br>

4QMQ经q上面的三步Q我们可以实C个应用程序,可以加蝲C++和C#的pluginsQ用CLI\C++装Q,能够动态的加蝲QC#用AppdomainQ,能够控制只加载需要的dllQ配|文件或C++的dll改ؓ其他的名字)?br>
?nbsp;VBA\VSTA集成环境中开?br>
VBA和VSTA都是microsoft提过的可以被嵌入的其他的应用E序中的开发工作,VBA是用集成VB的开发IDEQVSTA是集成基?net的开发IDE?br>架构如下图:

其他Q?a >http://msdn.microsoft.com/en-us/isv/bb190538.aspx ?http://www.summsoft.com/

?nbsp;支持脚本的集成开?br>
关于是应用程序支持脚本语a的集成开发,可以查看脚本语言的帮助,一般都有这斚w的支持,可以看Python : www.python.org, 比如python嵌入到AutoCAD的开源项目PyACADQ?a >http://pyacad.sourceforge.net/ ?br>
?nbsp;ȝ
在开发我们自q应用E序的时候考虑Q开放性,可扩展性!

梦在天 2008-06-06 17:26 发表评论
]]>
本博客所有精华随W烦?/title><link>http://www.shnenglu.com/mzty/archive/2008/01/17/41318.html</link><dc:creator>梦在天</dc:creator><author>梦在天</author><pubDate>Thu, 17 Jan 2008 02:14:00 GMT</pubDate><guid>http://www.shnenglu.com/mzty/archive/2008/01/17/41318.html</guid><wfw:comment>http://www.shnenglu.com/mzty/comments/41318.html</wfw:comment><comments>http://www.shnenglu.com/mzty/archive/2008/01/17/41318.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/mzty/comments/commentRss/41318.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mzty/services/trackbacks/41318.html</trackback:ping><description><![CDATA[<p><br>ȝQ?a href="http://www.shnenglu.com/mzty/archive/2007/08/13/29922.html"><br><br>http://www.shnenglu.com/mzty/archive/2007/08/13/29922.html</a>  C++高</p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/02/19109.html">http://www.shnenglu.com/mzty/archive/2007/03/02/19109.html</a>  C++基础</p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/04/16/22064.html">http://www.shnenglu.com/mzty/archive/2007/04/16/22064.html</a>  C#界面QC++核心法</p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/04/19163.html">http://www.shnenglu.com/mzty/archive/2007/03/04/19163.html</a>  设计模式</p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/29/20893.html">http://www.shnenglu.com/mzty/archive/2007/03/29/20893.html</a>  64bitQFW3.0随笔分类 </p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/29/20892.html">http://www.shnenglu.com/mzty/archive/2007/03/29/20892.html</a>  windows脚本技?/p> <p><a href="http://www.shnenglu.com/mzty/archive/2007/03/04/19167.html">http://www.shnenglu.com/mzty/archive/2007/03/04/19167.html</a>  C#基础</p><img src ="http://www.shnenglu.com/mzty/aggbug/41318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mzty/" target="_blank">梦在天</a> 2008-01-17 10:14 <a href="http://www.shnenglu.com/mzty/archive/2008/01/17/41318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CppBlog备䆾工具开发(开源)http://www.shnenglu.com/mzty/archive/2007/12/12/38355.html梦在天梦在天Wed, 12 Dec 2007 14:17:00 GMThttp://www.shnenglu.com/mzty/archive/2007/12/12/38355.htmlhttp://www.shnenglu.com/mzty/comments/38355.htmlhttp://www.shnenglu.com/mzty/archive/2007/12/12/38355.html#Feedback8http://www.shnenglu.com/mzty/comments/commentRss/38355.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/38355.html
一 背景
      
       长久以来一直想把自qblog备䆾到本圎ͼ可是找来扑֎找不到非常合适的备䆾工具Q所以只有自己动手写一个。考虑到需求主要是对html的解析,q要快速开发,所以选择C#来个单的原型先,不过据我研究Python提供了很多这斚w的功能,所以可能后来也会用Python开发一个更通用的版本?br>
?需?br>
      1Q根据用户名和BSP的域名,得到blog下所有文章的地址?br>      2Q对所有的地址下蝲Html保存到本地?br>      3Q对html中用到的图片的保存?br>      4Q对CSSQJS其他文g的下载?br>      5Q分cR?br>      6Q最好可以做成CHM格式?br>
?C# 版本

W一版本Q?a href="http://www.shnenglu.com/Files/mzty/BlogBackUpForMyCppblog2.rar">http://www.shnenglu.com/Files/mzty/BlogBackUpForMyCppblog2.rar

?Python版本

Ƣ迎大家提供相关的需求和相关的技术,使备份工h日实玎ͼ供大家用!有兴的也可以加入哦Q?img src ="http://www.shnenglu.com/mzty/aggbug/38355.html" width = "1" height = "1" />

梦在天 2007-12-12 22:17 发表评论
]]>
SDK学习Ҏhttp://www.shnenglu.com/mzty/archive/2007/11/09/36218.html梦在天梦在天Fri, 09 Nov 2007 07:42:00 GMThttp://www.shnenglu.com/mzty/archive/2007/11/09/36218.htmlhttp://www.shnenglu.com/mzty/comments/36218.htmlhttp://www.shnenglu.com/mzty/archive/2007/11/09/36218.html#Feedback2http://www.shnenglu.com/mzty/comments/commentRss/36218.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/36218.htmlSDK学习Ҏ

在我们^常的开发当中,不免我们要用一些其他的W三方的lgQ而且我们要快速的掌握我们需要的斚wQ然后应用到我们的实际项目当中?/p>

下面单的列一下我的学习步骤:

1下蝲q行时库Q可能是头文Ӟlib或dll?/p>

2下蝲和安装SDKQ在SDK中除了我们开发用的头文Ӟlib和dll外,最重要的就是文档Documentation和samples?/p>

3最好是有熟悉该component的people来个training。(traing也可以来自web上的一些video资料Qsuch asQwebcastQ?/p>

4大部分情冉|们是自学Qƈ没有l我们培训,如果是这PSDK中Documentation和samples是最好的老师。首先应该从Documentation中的Get started开始,一步一步的深入Q同时一般会有tutorialsQ所以我们可以代码结合Documentation学习。学习完tutotialsQ一般我们可以了解大概,然后想l深入则看sample下我们关pȝQsamples一般是按功能分cȝQ同时可以结合Documentation下的how do iQ在how do i?可以解决一些常见的问题和技巧。如果该lg同时有native和managed版本Q则最好可以找到native和managed的classQmethod的对应列表,q样可以跟快的相互{化?/p>

5除了SDKQ我们还可以在web上找专家Q最好是blog和论坛?/p>

6当然如果有同事一起学习,怺交流Q作用也很大Q?/p>

梦在天 2007-11-09 15:42 发表评论
]]>
þAVĻ| þ| ɫþþۺƷ| þþþþþž99Ʒ| Ʒ18þþ⺾| ޹Ʒþþþþ| ɫۺϾþ| Ƶþ| þþþAVƬ | ŷձþþƷ| ɫۺϾþ| þ2019Ļ| ˾ƷþѶ| þֹۺ޾Ʒ| 91þþƷһëƬ| Ļһþ| þþþӰԺС | ۺϾþۺ| þþ| Ʒþþþ| þ99ȺݺɫƷһ| ˾þۺ| ɫþùƷ12p| þþþĻƷ| ٸþĻ| 鶹Ʒþþþþþ99| þѴƬ| þþþavӰ | þþþŮ˾ƷëƬ| þþƷAV| һһþaþþƷۺ| þþþƷƵѹۿ| Ʒþþþþùţţapp| 97þþƷƷ| þþƷ| һɫþ88ۺ޾Ʒ| ѾƷպȾþ| þ޾ƷƷ| Ļþþ| þþþþþþþþ| ޾Ʒþþþþþþþþþ|