<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Microsoft%E4%BB%8B%E9%9D%A2%E5%AE%9A%E7%BE%A9%E8%AA%9E%E8%A8%80</id>
	<title>Microsoft介面定義語言 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Microsoft%E4%BB%8B%E9%9D%A2%E5%AE%9A%E7%BE%A9%E8%AA%9E%E8%A8%80"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Microsoft%E4%BB%8B%E9%9D%A2%E5%AE%9A%E7%BE%A9%E8%AA%9E%E8%A8%80&amp;action=history"/>
	<updated>2026-04-26T14:11:55Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=Microsoft%E4%BB%8B%E9%9D%A2%E5%AE%9A%E7%BE%A9%E8%AA%9E%E8%A8%80&amp;diff=426717&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Microsoft%E4%BB%8B%E9%9D%A2%E5%AE%9A%E7%BE%A9%E8%AA%9E%E8%A8%80&amp;diff=426717&amp;oldid=prev"/>
		<updated>2025-08-22T15:53:02Z</updated>

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