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

            久久ww精品w免费人成| 亚洲精品WWW久久久久久| 伊人 久久 精品| 久久免费大片| 久久天天躁狠狠躁夜夜2020老熟妇 | 久久不见久久见免费视频7| 免费无码国产欧美久久18| 国产69精品久久久久APP下载| 亚洲欧美精品一区久久中文字幕| 亚洲婷婷国产精品电影人久久| 亚洲精品国产第一综合99久久| 久久精品免费全国观看国产| 99久久精品免费看国产一区二区三区 | 天天影视色香欲综合久久| 一本久久a久久精品综合香蕉| 久久久一本精品99久久精品88| 中文字幕久久久久人妻| 狠狠干狠狠久久| 久久黄色视频| 久久精品国产日本波多野结衣 | 成人免费网站久久久| 国产亚洲成人久久| 久久亚洲AV成人无码软件| 国产精品欧美久久久天天影视| 久久一本综合| 国内精品伊人久久久久AV影院| 99久久精品免费看国产免费| 久久伊人色| 久久久久免费精品国产| 日韩va亚洲va欧美va久久| 久久婷婷成人综合色综合| 中文字幕久久欲求不满| 伊人 久久 精品| 99久久免费国产精品| 色偷偷久久一区二区三区| 久久一本综合| 国产精品VIDEOSSEX久久发布| 一本色道久久综合狠狠躁| 久久久精品人妻无码专区不卡 | 久久亚洲国产成人精品无码区| 国内精品人妻无码久久久影院|