首頁>Club>
13
回覆列表
  • 1 # 使用者1935023306605

    首先很多大型軟體都使用 COM 來提供 API,這個死不了,Office 軟體、Adobe PDF、IE的API、正則表示式介面、CAD的API,winnet 介面等等。就是使用 NET 技術,也會經常接觸到它。具體的,可以看看, VS 中的引用選單中的 COM 專案,那裡有很多很多COM元件,它們所提供的功能,用起來都十分的方便。有些人說 使用 當獨的DLL也可以,Windows 下,有些場景中,使用 COM 要方便的多。特別是“對像瀏覽器”中可以直接檢視到 COM 元件的成員。並且VBE ,VS 這些開發環境中,對COM元件中的類提供了自動程式碼例項,成員提示等功能,對程式設計師來說,這是一件很方便的事情。COM 技術是由2部分組成:第一部分:程式的二進位制記憶體結構約定,第二部分:由作業系統提供的支援 COM API 介面(如API函式: CoInitialize函式) 以及 工具集(如:regver32.exe 和 登錄檔)相信我,COM 技術掌握好了,對你快速掌握其他的 Windows 下的程式設計技術有無可替代的重要性,如果你只是在 linux 下程式設計,學習 COM 技術,也可以拓寬的你的視野,總得說來,只有好處,沒有壞處,如果你說沒時間學,那當我沒說。====不要爭論技術的好壞,所有技術都有優點和缺點,我們要利用的是它好的一面,以及適合自己的一面======

  • 2 # 使用者9231804048218

    .NET在設計之初就考慮到了如何方便的利用現有的各種技術資源,這也是微軟的一貫作風,.NET的強大之處也可見一斑。.NET提供了大量的類庫來方便的實現同COM的相互操作,其中很重要的一個名稱空間就是:System.Runtime.InteropServices。透過這個名稱空間的名字我們也可以從字面上看出,“互操作服務”。System.Runtime.InteropServices這個名稱空間提供了一系列的類來對COM物件進行操作。

    下面的例子中,我們來呼叫一下系統自帶的Win32函式MessageBoxA,這個函式位於系統的COM元件user32.dll當中,我們呼叫的程式碼如下:

    using System;

    using System.Runtime.InteropServices;

    class Test{[DllImport( "user32.dll ")]

    public static extern int MessageBoxA(inthWnd,string strMsg,string strCaption,intnType);

    public static void Main(){int myMsg;

    myMsg=MessageBoxA(0, "Hello! ", "test ",0);}}切換到MS-DOS命令列下面,執行:

    C:\ csc Test.cs

    編譯完畢我們的C#應用程式之後,直接執行就可以看到對話方塊了!

    需要注意的是,在呼叫COM元件之前,我們需要在.NET程式中引用名稱空間:System.Runtime.InteropServices。因為我們需要使用這個名稱空間所提供的一個方法:DllImport。

    你需要做的是:

    1.做一個COM+的.NET封裝(可以直接在VS.NET中引用COM元件,也可以使用Regsvcs.exe命令自己完成)

    2.在專案中引用上面產生的dll最好可以帖出你的程式碼,這樣大家判斷的才準確!

  • 中秋節和大豐收的關聯?
  • 私人技能培訓機構的老師如何給自己規劃發展路徑,大家有什麼好的建議分享一下?