• <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 閱讀(2484) 評論(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久久精品午夜一区二区| 欧美久久一级内射wwwwww.| 久久免费视频6| 亚洲国产精品一区二区久久hs| 久久久一本精品99久久精品66| 久久国产乱子伦免费精品| 久久99国产综合精品女同| 国产精品99久久精品爆乳| 久久精品中文字幕一区| 久久婷婷成人综合色综合| 99国产精品久久| 久久成人18免费网站| 久久久午夜精品| 一本久久a久久精品综合夜夜| 人人狠狠综合88综合久久| 亚洲精品tv久久久久久久久 | 久久久久久亚洲精品成人| 久久久中文字幕日本| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久精品成人免费看| 精品永久久福利一区二区| 久久久久女教师免费一区| 亚洲乱码精品久久久久..| 精品久久久久久无码免费| 久久Av无码精品人妻系列| 色播久久人人爽人人爽人人片AV| 精品久久人人妻人人做精品| 91精品日韩人妻无码久久不卡 | 亚洲欧美一区二区三区久久| 国产一区二区三区久久精品| 伊人久久亚洲综合影院| 久久久久免费精品国产| 久久发布国产伦子伦精品| 久久精品国产亚洲AV香蕉| 国产精品热久久毛片| 久久精品国内一区二区三区| 色婷婷久久综合中文久久蜜桃av| 欧美精品丝袜久久久中文字幕| 人妻无码久久精品|