亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? csdn_文檔中心_有關com的一些基本知識.htm

?? csdn10年中間經典帖子
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
			<!--
			document.ns = navigator.appName == "Netscape"
			tmpDate = new Date();
			date = tmpDate.getDate();
			month= tmpDate.getMonth() + 1 ; 
			if(document.ns)
			{
				year1=tmpDate.getYear()
				year= year1.toString().substr(1,2);
			}
			else
				year= tmpDate.getYear();
			
			document.write(year);
			document.write(".");
			document.write(month);
			document.write(".");
			document.write(date);
			// -->
			</SCRIPT>
      </B>&nbsp;&nbsp;</TD></TR>
  <TR bgColor=#999999>
    <TD colSpan=3 height=1></TD></TR></TBODY></TABLE>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD align=middle bgColor=#fafafa class=td1 vAlign=top width=150><BR>
      <SCRIPT src="CSDN_文檔中心_有關COM的一些基本知識.files/microsoft.js"></SCRIPT>
    </TD>
    <TD align=middle width=620>
      <TABLE bgColor=#eeeeee border=0 cellPadding=0 cellSpacing=0 width=600>
        <TBODY>
        <TR bgColor=#ffffff>
          <TD align=middle height=10 width=50></TD>
          <TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A 
            href="http://www.csdn.net/develop/">文檔中心</A> - <FONT 
            color=#003399>Visual C++</FONT>&nbsp;&nbsp;&nbsp;&nbsp; </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399 height=10><FONT 
            color=#ffffff>標題</FONT></TD>
          <TD><B>&nbsp;&nbsp;&nbsp;&nbsp;有關COM的一些基本知識</B>&nbsp;&nbsp;&nbsp;&nbsp;CFree(原作) 
          </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399><FONT color=#ffffff>關鍵字</FONT></TD>
          <TD width=500>&nbsp;&nbsp;&nbsp;&nbsp;有關COM的一些基本知識</TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR></TBODY></TABLE><!--文章說明信息結束//-->
      <TABLE border=0 width=600>
        <TBODY>
        <TR>
          <TD align=left><BR>
            <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;組件對象模型的基本知識&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            <BR>&nbsp;&nbsp; 
            基于構件的軟件開發日益流行,這里我吧自己在學校時整理的關于COM的一些東西獻給大家,供初學者參考.<BR>一.組件<BR>(COM),是微軟公司為了計算機工業的軟件生產更加符合人類的行為方式開發的一種新的軟件開發技術。在COM構架下,人們可以開發出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構成復雜的應用系統。由此帶來的好處是多方面的:可以將系統中的組件用新的替換掉,以便隨時進行系統的升級和定制;可以在多個應用系統中重復利用同一個組件;可以方便的將應用系統擴展到網絡環境下;COM與語言,平臺無關的特性使所有的程序員均可充分發揮自己的才智與專長編寫組件模塊;等等。&nbsp; 
            <BR>COM是開發軟件組件的一種方法。組件實際上是一些小的二進制可執行程序,它們可以給應用程序,操作系統以及其他組件提供服務。開發自定義的COM組件就如同開發動態的,面向對象的API。多個COM對象可以連接起來形成應用程序或組件系統。并且組件可以在運行時刻,在不被重新鏈接或編譯應用程序的情況下被卸下或替換掉。Microsoft的許多技術,如ActiveX, 
            DirectX以及OLE等都是基于COM而建立起來的。并且Microsoft的開發人員也大量使用COM組件來定制他們的應用程序及操作系統。<BR>COM所含的概念并不止是在Microsoft 
            Windows操作系統下才有效。COM并不是一個大的API,它實際上象結構化編程及面向對象編程方法那樣,也是一種編程方法。在任何一種操作系統中,開發人員均可以遵循“COM方法”。<BR>一個應用程序通常使由單個的二進制文件組成的。當編譯器生成應用程序之后,在對下一個版本重新編譯并發行新生成的版本之前,應用程序一般不會發生任何變化。操作系統,硬件及客戶需求的改變都必須等到整個應用程序被重新生成。<BR>目前這種狀況已經發生變化。開發人員開始將單個的應用程序分隔成單獨多個獨立的部分,也既組件。這種做法的好處是可以隨著技術的不斷發展而用新的組件取代以有的組件。此時的應用程序可以隨新組件不斷取代舊的組件而漸趨完善。而且利用已有的組件,用戶還可以快速的建立全新的應用。<BR>傳統的做法是將應用程序分割成文件,模塊或類,然后將它們編譯并鏈接成一個單模應用程序。它與組件建立應用程序的過程(稱為組件構架)有很大的不同。一個組件同一個微型應用程序類似,即都是已經編譯鏈接好并可以使用的二進制代碼,應用程序就是由多個這樣的組件打包而得到的。單模應用程序只有一個二進制代碼模塊。自定義組件可以在運行時刻同其他的組件連接起來以構成某個應用程序。在需要對應用程序進行修改或改進時,只需要將構成此應用程序的組件中的某個用新的版本替換掉即可。<BR>COM,即組件對象模型,是關于如何建立組件以及如何通過組件建立應用程序的一個規范,說明了如何可動態交替更新組件。<BR>使用組件的優點:<BR>組件架構的一個優點就是應用可以隨時間的流逝而發展進化。除此之外,使用組件還有一些可以使對以有應用的升級更加方便和靈活的優點,如應用的定制,組件庫以及分布式組件等。<BR>使用組件的種種優點直接來源于可以將它們動態的插入或卸出應用。為了實現這種功能,所有的組件必須滿足兩個條件:第一,組件必須動態鏈接;第二,它們必須隱藏(或封裝)其內部實現細節。動態鏈接對于組件而言是一個至關重要的要求,而消息隱藏則是動態鏈接的一個必要條件。<BR>二.接口<BR>對于COM來講,接口是一個包含一個函數指針數組的內存結構。每一個數組元素包含的是一個由組件所實現的函數地址。對于COM而言,接口就是此內存結構,其他東西;均是COM不關心的實現細節。<BR>在C++中,可以用抽象基類來實現COM接口。由于一個COM組件可以實現支持任意數目的接口,因此對于這樣的組件,可以用抽象基類的多重繼承來實現。用類來實現組件將比其他方法更為容易。<BR>對于客戶來說,一個組件就是一個接口集。客戶只能通過接口才能和COM組件打交道。從整體上講,客戶對于一個組件可以說是知之甚少的。通常情況下,客戶甚至不必知道一個組件所提供的所有接口。<BR>客戶同組件的交互是通過接口完成的。在客戶查詢組件其他的接口時,也是通過接口完成的。這個接口就是IUnknown。Iunknown接口的定義包含在Win32 
            SDK中的UNKNOWN.H的頭文件中,引用如下:</P>
            <P>interface IUnknown<BR>{<BR>&nbsp; virtual HRESULT-_ _stdcall 
            QueryInterface(const IID&amp; iid,void **ppv)=0;<BR>&nbsp; virtual 
            ULONG_ _stdcall AddRef( )=0;<BR>&nbsp; virtual ULONG_ _Release( 
            )=0;<BR>};</P>
            <P>所有的COM都要繼承IUnknown。可以用Iunknown的接口指針來查詢該組件的其他的接口,并且每個接口的vtbl中的前三個函數都是QueryInterface,AddRef和Release。這使得所有的COM接口都可以被當作成IUnknown接口來處理。由于所有的接口都支持QueryInterface,因此組件的任何一個接口都可以被客戶用來獲取它所支持的其他接口。<BR>在用QueryInterface將組件抽象成由多個相互獨立的接口構成的集合后,還需要管理組件的生命期。這一點是通過對接口的引用計數實現的。客戶并不能直接控制組件的生命期。當使用完一個接口而要用組件的另一個接口時,是不能將改組件釋放的。對組件的釋放可以由組件在客戶使用完所有的組件之后自己完成。IUnknown的另外兩個成員函數AddRef和Release的作用就是給客戶提供一種讓它指示何時處理完一個接口的手段。<BR>AddRef和Release實現的是一種名為引用技術的內存管理技術。當客戶從組件獲得一個接口時,此引用計數值將增1。當客戶使用完某個接口時,組件的引用計數值將減1,當引用計數值為0時,組件可以將自己從內存中刪除。AddRef和Release可以增加和減少這一計數值。<BR>三.創建<BR>將組件分成多個接口只是將單模應用分個成多個部分的第一步,組件需要被放入動態鏈接庫(DLL)中。DLL是一個組件服務程序,或者說是發行組件的一種方式。組件實際上應看成是在DLL中實現的接口集。在客戶獲取某個組件接口指針之前,它必須先將相應的DLL裝載到其進程空間中,并創建此組件。<BR>由于客戶組件所需要的所有函數都可以通過某個接口指針而訪問到,因此,可以在DLL中引出CreatInstance函數就可以使用戶調用它。之后,可以裝載DLL并調用其中的函數。此功能可由COM庫函數CoCreateInstance來實現。CoCreateInstance創建組件的過程是:傳給它一個CLSID,然后它創建相應的組件,并返回指向所請求的接口的指針。但CoCreateInstance沒有給客戶提供一種能控制組件創建過程的方法,缺乏一定的靈活性。事實上,常用類廠來創建組件。類廠就是一個帶有能夠創建其他組件的接口的組件。客戶先創建類廠本身,然后再用一個接口(如IClassFactory)來創建所需的組件。然后還要用DllRegisterSever在Windows中注冊這個組件。<BR>四.復用<BR>COM組件可以被復用,它支持“接口繼承”。這種繼承指的是一個類繼承其基類的類型或接口。抽象基類是一種最純粹的接口繼承,并且正好也被用來實現COM接口。在COM中,我們可以用包容和聚合來對組件進行改造。<BR>包容是在接口級完成的。外部組件包含指向內部接口的指針。此時,外部組件僅僅是內部組件的一個客戶而已,它將使用內部組件的接口來實現它自己的接口。外部組件也可以通過將調用轉發給內部組件的方法來重新實現內部組件所支持的某個接口。并且外部組件還可以在內部組件代碼的前后加上一些代碼以對接口進行改造。<BR>聚合是包含的一種變化形式。當外部組件聚合了某個內部組件的一個接口時,它并沒有象包容那樣重新實現此接口并顯式的將調用請求轉發給內部組件。相反,外部組件直接把內部組件的接口指針返回給客戶。使用這種方法,外部組件將無需重新實現并轉發接口中的所有函數了。<BR>包容和聚合為實現組件的復用提供了一種極具魯棒性的機制。在組件構架下,客戶于組件的實現完全隔離開了。<BR>五.小結<BR>以上是關于COM的一些基礎知識。遵循COM規范編寫的組件將會極大的改變傳統的軟件生產方式,具有廣闊的發展前景。這也將為軟件工程學引入新的內容和方法。<BR></P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0 
width=770>
  <TBODY>
  <TR bgColor=#006699>
    <TD align=middle bgColor=#006699 id=white><FONT 
    color=#ffffff>對該文的評論</FONT></TD>
    <TD align=middle>
      <SCRIPT src="CSDN_文檔中心_有關COM的一些基本知識.files/readnum.htm"></SCRIPT>
    </TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文檔中心_有關COM的一些基本知識.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; CFree <I>(2001-1-9 19:24:57)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>很抱歉,我也沒整理更多的了,實在是因為水平有限.呵呵. 
      <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文檔中心_有關COM的一些基本知識.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; xbf <I>(2001-1-5 0:01:43)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>有沒有更多的有關com的資料啊,我想看。 
  <BR></TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TH bgColor=#006699 id=white><FONT 
color=#ffffff>我要評論</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD>你沒有登陸,無法發表評論。 請先<A 
      href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=2913">登陸</A> 
      <A 
href="http://www.csdn.net/expert/zc.asp">我要注冊</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
  <TBODY>
  <TR align=middle>
    <TD height=10 vAlign=bottom><A 
      href="http://www.csdn.net/intro/intro.asp?id=2">網站簡介</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=5">廣告服務</A> - <A 
      href="http://www.csdn.net/map/map.shtm">網站地圖</A> - <A 
      href="http://www.csdn.net/help/help.asp">幫助信息</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=2">聯系方式</A> - <A 
      href="http://www.csdn.net/english">English</A> </TD>
    <TD align=middle rowSpan=3><A 
      href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG 
      border=0 height=48 src="CSDN_文檔中心_有關COM的一些基本知識.files/biaoshi.gif" 
      width=40></A></TD></TR>
  <TR align=middle>
    <TD vAlign=top>百聯美達美公司 版權所有 京ICP證020026號</TD></TR>
  <TR align=middle>
    <TD vAlign=top><FONT face=Verdana>Copyright &copy; CSDN.net, Inc. All rights 
      reserved</FONT></TD></TR>
  <TR>
    <TD height=15></TD>
    <TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--內容結束//--><!--結束//--></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区在线观看| 日韩精品亚洲专区| www亚洲一区| 日韩一级免费观看| 91国内精品野花午夜精品| va亚洲va日韩不卡在线观看| 国产激情一区二区三区桃花岛亚洲| 日韩精品欧美成人高清一区二区| 亚洲国产精品天堂| 精品一区二区三区免费播放| 免费人成网站在线观看欧美高清| 久久精品噜噜噜成人av农村| 激情国产一区二区| 99riav一区二区三区| 99精品久久只有精品| 欧美日韩不卡一区二区| 欧美精品丝袜久久久中文字幕| 国产欧美精品国产国产专区| 中文字幕av资源一区| 亚洲欧洲av色图| 亚洲一区中文在线| 国产一区二区精品久久99| 午夜一区二区三区在线观看| 久久尤物电影视频在线观看| 久久久国产精品午夜一区ai换脸| 亚洲日本在线天堂| 日本丰满少妇一区二区三区| 精品久久久久一区| 久久精品亚洲精品国产欧美kt∨ | 狠狠色狠狠色综合系列| 精品国产污污免费网站入口 | 国产一区视频网站| 国产精品一区二区男女羞羞无遮挡 | 亚洲一区中文日韩| 亚洲一线二线三线视频| 亚洲丰满少妇videoshd| 99精品国产一区二区三区不卡| 悠悠色在线精品| 亚洲天堂成人在线观看| 免费成人av在线| 国产精品毛片无遮挡高清| 制服.丝袜.亚洲.中文.综合| 成人a免费在线看| 日韩va欧美va亚洲va久久| 国产精品久久久久9999吃药| 日韩一区二区在线免费观看| 色系网站成人免费| 国产毛片精品一区| 日韩国产高清在线| 亚洲精品午夜久久久| 国产亚洲欧美日韩俺去了| 欧美日本精品一区二区三区| 成人动漫一区二区三区| 毛片av中文字幕一区二区| 一区av在线播放| 国产欧美va欧美不卡在线| 日韩午夜精品电影| 欧美调教femdomvk| 91论坛在线播放| 成人av网址在线观看| 美国一区二区三区在线播放| 亚洲成av人在线观看| 一区二区视频在线看| 91精品国产欧美一区二区成人| 美女网站在线免费欧美精品| 国产精品传媒视频| 久久久久久久综合日本| 精品视频999| 天天射综合影视| www精品美女久久久tv| 国产综合色在线视频区| 国产精品美女一区二区| 欧美久久久影院| 蜜臀精品一区二区三区在线观看 | 欧美日韩在线观看一区二区 | 久久国产精品72免费观看| 爽好久久久欧美精品| 亚洲一级二级三级在线免费观看| 欧美日韩一级二级三级| 国产成人亚洲精品青草天美| 日本一区二区三区四区| 欧美人伦禁忌dvd放荡欲情| 国产原创一区二区| 一区二区三区在线免费播放| 日韩一区二区免费视频| 欧美在线免费观看视频| eeuss鲁片一区二区三区| 三级在线观看一区二区| 中文字幕一区av| 久久亚洲综合色| 日韩精品一区二区三区四区视频| av成人免费在线| 国产成人一区二区精品非洲| 国产精品自拍三区| 丝袜美腿一区二区三区| 精品在线播放免费| 亚洲免费在线看| 午夜精品福利一区二区蜜股av| 综合激情成人伊人| 亚洲色图第一区| 欧美无砖专区一中文字| 精品一区免费av| 午夜伊人狠狠久久| 一区二区不卡在线视频 午夜欧美不卡在| 一区二区三区久久久| 91久久精品一区二区二区| 亚洲免费毛片网站| 666欧美在线视频| 精品成人a区在线观看| 中文一区二区完整视频在线观看| 亚洲色图在线播放| 三级影片在线观看欧美日韩一区二区 | 亚洲福利一区二区| 精品在线观看免费| 色噜噜夜夜夜综合网| 91精品国产综合久久精品图片| 欧美精品一区二区三区一线天视频| 最新中文字幕一区二区三区| 青青草原综合久久大伊人精品 | 日韩欧美在线影院| 中文字幕免费在线观看视频一区| 一区二区不卡在线播放| 激情久久五月天| 欧美伊人精品成人久久综合97| 日韩美女在线视频| 一二三四社区欧美黄| 国产麻豆一精品一av一免费 | 亚洲另类中文字| 精品一区二区三区免费播放| 在线视频国产一区| www欧美成人18+| 亚洲bdsm女犯bdsm网站| 不卡在线视频中文字幕| 欧美成人在线直播| 亚洲一区在线播放| 成人a级免费电影| 久久综合九色欧美综合狠狠| 一区二区三区在线观看国产| 国产成人高清在线| 欧美一区二区三区成人| 艳妇臀荡乳欲伦亚洲一区| 国产激情偷乱视频一区二区三区| 555www色欧美视频| 亚洲主播在线观看| 不卡视频在线观看| 久久丝袜美腿综合| 麻豆国产精品777777在线| 精品婷婷伊人一区三区三| 亚洲欧美另类久久久精品2019| 国产99久久久国产精品潘金| 亚洲精品一区二区三区福利| 男女男精品视频| 91精品国产欧美一区二区| 亚洲成人自拍网| 欧美性色aⅴ视频一区日韩精品| 亚洲色欲色欲www| 成人黄色综合网站| 久久久久青草大香线综合精品| 久久99蜜桃精品| 日韩一区二区在线观看| 日韩国产欧美视频| 在线观看91精品国产麻豆| 亚洲不卡一区二区三区| 欧美色涩在线第一页| 一区二区三区在线视频播放| 91麻豆产精品久久久久久| 亚洲日本一区二区| 色综合久久久久久久| 亚洲精品视频免费看| 日本韩国一区二区| 亚洲一区二区在线播放相泽| 欧美日韩一区在线观看| 亚洲高清三级视频| 精品视频全国免费看| 日韩和欧美一区二区| 欧美一级片在线| 狠狠色丁香九九婷婷综合五月| 久久综合色婷婷| 国产成人精品免费网站| 亚洲欧洲日韩综合一区二区| 99re热视频精品| 亚洲成av人片一区二区| 日韩一二三四区| 国产乱子轮精品视频| 国产欧美一区二区精品秋霞影院| 成人午夜视频免费看| 亚洲精品少妇30p| 欧美一卡2卡3卡4卡| 国内精品嫩模私拍在线| 国产人久久人人人人爽| 91国偷自产一区二区三区观看 | 麻豆91免费观看| 久久久国际精品| 色老汉一区二区三区| 日韩精品成人一区二区三区| 久久亚洲二区三区| 91欧美激情一区二区三区成人| 一区二区三区不卡视频在线观看| 欧美一区二区三区在线看| 极品尤物av久久免费看|