日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

想写一篇关于.net下COM工作原理的文章

發(fā)布時(shí)間:2023/12/31 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 想写一篇关于.net下COM工作原理的文章 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天想寫一篇關(guān)于.net下COM工作原理的文章。花了大概3個(gè)小時(shí),文章也寫的差不多了,可是越寫到后來(lái)越發(fā)現(xiàn)自己的觀點(diǎn)以及想法越錯(cuò)誤。
邊寫邊查MSDN,最后不得不放棄發(fā)布這篇文章了。雖然花了好幾個(gè)小時(shí),最后什么也沒(méi)有,但還是學(xué)到了不少東西。
總結(jié)一下.net下是如何實(shí)現(xiàn)與COM(或者ActiveX)交互的吧。

記得也是在博客園上看到有一篇文章關(guān)于用C#寫ActiveX的文章,與其說(shuō)是.net寫ActiveX不如說(shuō)是.net如何使用它們。
首先應(yīng)該明確以下幾個(gè)問(wèn)題:
1、在.net平臺(tái)下,沒(méi)有真正的COM或者ActiveX,它們都只是.net下的一個(gè)封裝。
2、它的封裝是通過(guò)COM Interop對(duì)托管對(duì)象向傳統(tǒng)COM進(jìn)行一個(gè)接口暴露。反之,也是通過(guò)COM Interop對(duì)傳統(tǒng)COM進(jìn)行一個(gè).net包裝,使.net可以像訪問(wèn)普通對(duì)象一樣的訪問(wèn)傳統(tǒng)COM。而傳統(tǒng)的COM仍然要在目標(biāo)機(jī)器上注冊(cè)。
3、不管是.net訪問(wèn)傳統(tǒng)COM,還是通過(guò)COM訪問(wèn).net對(duì)象,最終都是離不開(kāi).net 平臺(tái)的。
4、通過(guò)傳統(tǒng)的COM來(lái)訪問(wèn).net對(duì)象,其實(shí)是用.net下的幾個(gè)工具,先從.net下的對(duì)象中取得一些源數(shù)據(jù),轉(zhuǎn)化成COM數(shù)據(jù)類型,然后注冊(cè)給Windows,同時(shí)也可以暴露給其它應(yīng)用程序(如C++,當(dāng)然它是二進(jìn)制的,但只是一些數(shù)據(jù)和接口的定義,不是真正的代碼)。當(dāng)COM對(duì)象來(lái)生成.net對(duì)象時(shí),用戶是不知道他所要的對(duì)象是從哪來(lái)的,其實(shí)是.net的COM Interop生成,交給傳統(tǒng)的COM,然后由COM返回經(jīng)過(guò)COM Interop封裝后的.net對(duì)象。當(dāng)然,用戶還是把它當(dāng)傳統(tǒng)COM來(lái)使用,.net為我們完成了數(shù)據(jù)轉(zhuǎn)化工作。
有興趣的讀者可以查一下MSDN里的托管與非托管代碼的混合編程這方面的知識(shí),內(nèi)容還是很多的。
大概就總結(jié)這些,有機(jī)會(huì)還是把那篇文章寫完,說(shuō)真的,辛辛苦苦的寫了好幾個(gè)小時(shí),結(jié)果理解都是有偏差的,真還讓人有點(diǎn)郁悶。還好及時(shí)發(fā)現(xiàn),不至于發(fā)表出來(lái)?誤人子弟。多寫些文章還有是幫助的。

轉(zhuǎn)載于:https://www.cnblogs.com/WuCountry/archive/2006/12/11/589047.html

總結(jié)

以上是生活随笔為你收集整理的想写一篇关于.net下COM工作原理的文章的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。