• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            COM組件與dll

            Posted on 2008-09-12 12:54 Prayer 閱讀(2480) 評論(0)  編輯 收藏 引用 所屬分類: 組件
            首先介紹什么是com組件,com組件是一種二進制規范,在這里我們要特別注意二進制規范這個詞,com組件為了在同一種平臺下不同語言間的可重用性,微軟專門定義了一組規范,但是這種規范是得到各大廠家支持的,所以他是一種標準不是微軟自己的產品,所以其他的語言的編譯器支持這個二進制規范也就是說實現了這個規范,那么com組件就可以在很多語言中橫行。

               至于com組件的跨平臺問題,我先談談我對平臺的理解。平臺我認為應該分為兩種,一種是機器本身的指令系統,也就是硬件。另一種是操作系統。語言在不同平臺上要跨越的是硬件的指令系統和操作系統的系統本地函數例如最常見的是winAPI函數。所以在WINDOWS下編譯成的com組件,只要不包含WINAPI函數,理論上,在相同的硬件基礎上也是可以執行的。

            在這種意義上,這種跨平臺有些牽強。所以我認為com組件可以在很多平臺上使用,但是真正做到跨平臺是不可能的。

                 DLL是一種程序動態調用以及連接的技術,他和組件是完全兩種不同的概念,很多組件都采用這種技術作為自身的連接方式。說道DLL我們就要提一下普通的DLL和COM組件的區別,現在windows下使用的都是c語言接口的,因為windows系統函數基本上都是c接口的(能夠被c語言理解的),所以現在的DLL很多也是完成這種接口的(在COM組件為成為主流之前),所以一種非com組件的DLL被另一種語言調用,前提是該語言支持對C接口的解釋。例如:我用delphi寫了一個DLL,在java中調用,java就會用JNI(java native interface)進行重寫。作為對c接口的解釋。至于對API函數的引用需不需要使用JNI,都有道理,如果用了,說明java內部沒有替開發人員實現,如果沒有使用JNI則說明java已經代替開發人員實現了。因為現有的API函數是一定的,可以事先實現。

            一本大道久久香蕉成人网| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 久久99国产精品久久99| 久久免费高清视频| 人妻中文久久久久| 久久久久亚洲av无码专区喷水| 伊人色综合久久天天| 久久久久人妻一区二区三区| 久久久久久久尹人综合网亚洲| 无码任你躁久久久久久老妇App| 国产精品久久久久jk制服| 热RE99久久精品国产66热| 国产精品久久亚洲不卡动漫| 久久久久久久波多野结衣高潮| 欧美精品一区二区精品久久| 中文字幕久久久久人妻| 久久精品国产亚洲av瑜伽| www.久久热.com| 亚洲狠狠婷婷综合久久蜜芽 | 久久99国产一区二区三区| 无码人妻精品一区二区三区久久久| 99久久www免费人成精品| 69SEX久久精品国产麻豆| 亚洲综合伊人久久综合| 热99RE久久精品这里都是精品免费| 国产精品久久久久影视不卡| 无码人妻精品一区二区三区久久 | 精品久久久久久无码专区| 久久国产亚洲精品| 久久亚洲国产最新网站| 人妻无码精品久久亚瑟影视| 久久久久亚洲av成人无码电影 | 久久精品国产99国产精品| 成人精品一区二区久久| 国产999精品久久久久久| 国产成人久久精品麻豆一区| 日本免费一区二区久久人人澡| 久久精品一区二区国产| 久久国产精品成人免费| 伊人色综合久久| 手机看片久久高清国产日韩|