跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 Microsoft介面定義語言 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
Microsoft介面定義語言
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''Microsoft 介面定義語言'''(英語:Microsoft Interface Definition Language;縮寫:MIDL)是微軟的因為文字的介面描述語言。擴充自 DCE / RPC IDL 用就是微軟的組件物件模型(Component Object Model)。 伊的編譯器是 MIDL . exe(隨 Windows SDK 發行)。 MIDL 用佇遠端的程序呼叫 ( RPC ) 的介面、DCOM 介面、OLE 自動化的類型庫等等的描述 . ==簡介== 彼每一个 IDL 檔案包含一个抑是幾个仔 interface 定義。彼每一个 interface 定義由 interface 頭殼佮 interface 體組成。interface 頭殼予出介面的整體資訊;若是含關鍵字 object,表示講這是一个 COM 介面,抑無表示這是一个 DCE RPC 介面。interface 體共出來所有需要暴露的資訊。 IDL 檔案中一个介面的結構資訊: IDL 檔案介面範例: 類型庫用於向編譯器提供關於類、介面、列舉等等的 COM 東西抑是 COM 介面的資訊。類型庫是二進位檔案。MIDL 編譯器處理 IDL 檔案閣建立類型庫檔案、標頭檔、proxy 檔案。比如講: ` ` ` midl myfilectl . idl / tlb myfilectl . tlb / h ` ` ` 其中 / h 產生 C + + 標頭檔。 MIDL 編譯器編譯 name . idl 預設產生的檔案,對於 RPC 介面為 : ` ` ` Client stub ( name _ c . c ) Server stub ( name _ s . c ) Header file ( name . h ) ` ` ` 對於 COM 介面預設產生的檔案 : ` ` ` Interface proxy / stub file ( name _ p . c ) ma-lá-tsih / 服侍器的 surrogate entry points Interface header file ( name . h ) 包含 IDL 文件當中定著的接口的被型定抹函函,以及 stub 交易用的子例程的前向光明。 Interface UUID file ( name _ i . c ) 承喙 ID 文件,定讞 IDL 文件中的每個接口的 GUID 鋪排放文件 ( name . tlb ) Dlldata . c 鋪建 proxy / stub DLL 所需要的被竭 ` ` ` 若介面屬性列表內底有 local 屬性,編譯進產生介面的標頭檔,Name . h . ==歷史== MIDL 三更零版支援按照類似 C # 語言的格式寫 idl 檔案。這要求使用 Windows SDK 十曉零 . 一孵七千一百三十四抹零版抑是以上,其實所包括的 midl . exe 是八○零一 . 六百二十二版抑是以上的,編譯的時陣使用 / winrt 選項。介面中的非 local 的成員函式返回類型只能是 HRESULT 抑是 SCODE,因為三允准轉去彼種版本允准倒轉去類型做 void,毋過這種三更零版本內底將編譯報毋著。 ==語言內容== 伊欲介面會當共聲明,通好予人參照。 類型定義 ( typedef )、construct 聲明、import 指令(類似 C 語言預處理器 include 指令), 會用得出現佇 interface 體的外部。IDL 檔案遮的定義攏會出現佇產生的標頭檔中;所有的介面的所有的過程攏會去予建立 stub 常式。 ===MIDL 資料類型=== 陣列定義遵對 C 語言的標準,陣列下界必須為零。一對方括號內若干焦一个數,表示陣列下界為零上界為 N 影一;若是方括號內為 \ * 號,表示下界為零上界咧執行的時確定;[lower . . . upper] 明確予出上下限。真濟維陣列干焦上左維會使無佇咧編譯的時陣指定。 封裝的聯合類型(encapsulated union)是講類型的通過 switch 定義的判別資料成員(discriminant)嘛去予人封裝佇類型中。如下比如下: ===類型庫=== 類型庫是二進位檔案 ( . tlb ) 包含一个 ActiveX 應用程式暴露的類型佮物件的資訊。可包括: * 資料類型資訊,如:aliases , enumerations , structures , unions . * 物件咧講,每一个這款的描寫叫做 typeinfo。如:module , interface , IDispatch interface ( dispinterface ) , component object class ( coclass ) . 會當理解講介面是抽象類,coclass 是介面的物理實現類。 * 參與別類型庫的類型描述。 類型庫會當是 midl 編譯產生的單獨的二進位檔案 ( . tlb,表示 type library )。嘛會當用資源編譯器 ( rc . exe ) 共 . tlb 檔案增加到 DLL 抑是 exe 檔案中。帶有一个抑是濟的類型庫資源的 DLL 典型有副檔名 . olb ( object library ) . tlb 檔案佇資原始檔 ( . rc ) 著愛寫做是下形式按呢,帶有整數辨識符、類型做 TypeLib: ` ` ` 一 typelib mylib 一 . tlb 二 typelib mylib 二 . tlb ` ` ` 共 tlb 登記佇咧 Windows 登錄檔,會用得 . NET FRAMEWOK 紮有的 regtlibv 十二 . exe,通常佇按呢的 kha-tá-lok-guh 落: ` ` ` C : \ WINDOWS \ Microsoft . NET \ Framework \ v 四配零 . 三更空三百一十九 \ regtlibv 十二 . exe ` ` ` 各種的類型庫工具(如編譯器、object browser 等)通過 ITypeLib 按呢的介面存取二進位類型庫資訊。 類型庫是咧講語言是 ODL,上頂層的語法結構就是 library 語句。 MIDL 的資料類型當中,boolean 基礎類型等價於 VT \ _ UI 一;BOOL 資料類型予人定義做 long;若希望欲使用 VT \ _ BOOL,按呢應該用 VARIANT \ _ BOOL 資料類型。 下述代碼裝入並佇咧 Windows 登錄檔中註冊一个類型庫: ==參見== * 物件描述語言 ==參考文獻== ==外部連結== * Microsoft Interface Definition Language-Win 三十二 apps | Microsoft Docs * Microsoft Interface Definition Language 三-c零 reference-Windows UWP applications | Microsoft Docs ==參考文獻== [[分類: 待校正]]
返回到「
Microsoft介面定義語言
」。