• <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 閱讀(2468) 評論(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函數是一定的,可以事先實現。

            国产精品99久久久精品无码| 国产成人精品久久亚洲高清不卡 | 色综合合久久天天给综看| 久久精品国产精品亚洲艾草网美妙 | 久久精品这里只有精99品| 亚洲性久久久影院| 伊人久久大香线蕉AV一区二区| 久久久精品国产Sm最大网站| 久久人人爽人人人人片av| 亚洲国产一成人久久精品| 日日噜噜夜夜狠狠久久丁香五月| 日韩精品久久久久久| 久久丝袜精品中文字幕| 99999久久久久久亚洲| 欧美一级久久久久久久大| 久久亚洲精品成人av无码网站| 香蕉久久夜色精品国产小说| 2021最新久久久视精品爱| 99久久综合狠狠综合久久止| 欧美一区二区久久精品| 99久久精品费精品国产| 亚洲AV无码久久精品成人| 精品国产热久久久福利| 精品久久久久久久无码 | 精品一二三区久久aaa片| 久久91精品国产91久久户| 久久精品国产日本波多野结衣| 2021国产成人精品久久| 色综合久久无码五十路人妻| 久久人人爽人人爽人人片AV高清| 久久人人爽人人爽人人片AV东京热| 国产成人久久精品一区二区三区| 久久久久国产精品人妻| 青青草原综合久久大伊人导航| 国产成人AV综合久久| 久久久青草青青亚洲国产免观 | 99久久精品免费| 色成年激情久久综合| 久久亚洲精品视频| 久久免费线看线看| 一本一道久久精品综合|