中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#的COM接口怎么轉換

發布時間:2021-12-01 11:53:29 來源:億速云 閱讀:166 作者:iii 欄目:編程語言

這篇文章主要介紹“C#的COM接口怎么轉換”,在日常操作中,相信很多人在C#的COM接口怎么轉換問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C#的COM接口怎么轉換”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

C#中不僅支持.Net 平臺,而且支持COM平臺。為了支持 COM和.Net,C# 包含一種稱為屬性的獨特語言特性。一個屬性實際上就是一個 C# 類,它通過修飾源代碼來提供元信息。屬性使 C# 能夠支持特定的技術,如 COM 和 .Net,而不會干擾語言規范本身。C# 提供將COM接口轉換為 C#接口的屬性類。另一些屬性類將C# COM接口轉換為C# 類。執行這些轉換不需要任何 IDL 或類工廠。

現在部署的任何COM 組件都可以在接口轉換中使用。通常情況下,所需的調整是完全自動進行的。

特別是,可以使用運行時可調用包裝 (RCW) 從 .NET 框架訪問 COM 組件。此包裝將 COM 組件提供的C# COM接口轉換為與 .NET 框架兼容的接口。對于 OLE 自動化接口,RCW 可以從類型庫中自動生成;對于非 OLE 自動化接口,開發人員可以編寫自定義 RCW,手動將 COM 接口提供的類型映射為與 .NET 框架兼容的類型。

下面是接口轉換的C#程序:

using System.Runtime.InteropServices;  // 聲明一個COM接口 IMediaControl  [Guid("56A868B1-0AD4-11CE-B03A-0020AF0BA770"),  InterfaceType(ComInterfaceType.InterfaceIsDual)]  interface IMediaControl // 這里不能列出任何基接口  {  void Run();  void Pause();  void Stop();  void GetState( [In] int msTimeout, [Out] out int pfs);  void RenderFile(  [In, MarshalAs(UnmanagedType.BStr)] string strFilename);  void AddSourceFilter(  [In, MarshalAs(UnmanagedType.BStr)] string strFilename,  [Out, MarshalAs(UnmanagedType.Interface)] out object ppUnk);  [return : MarshalAs(UnmanagedType.Interface)]  object FilterCollection();  [return : MarshalAs(UnmanagedType.Interface)]  object RegFilterCollection();  void StopWhenReady();  }

到此,關于“C#的COM接口怎么轉換”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

com
AI

仁怀市| 东兰县| 富源县| 钟山县| 安岳县| 沅陵县| 大悟县| 兴业县| 新安县| 新河县| 乐至县| 西城区| 上栗县| 开阳县| 五台县| 东明县| 南雄市| 石楼县| 岳阳市| 申扎县| 宝兴县| 封开县| 眉山市| 河间市| 西吉县| 兰坪| 元阳县| 保靖县| 罗源县| 襄汾县| 沭阳县| 崇信县| 灌南县| 大方县| 临漳县| 施秉县| 孟连| 永修县| 韶山市| 渭源县| 新源县|