

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
midlとは?
このページでは midl について、初心者にもわかるようにやさしく解説します。実は MIDL という大文字の略語で使われることが多く、 Microsoft の Interface Definition Language を指します。ここでは lowercase の midl が出てくる場面と、どう使われるのかを順番に紹介します。
midl・とは何か
midl は多くの場合、Windows の開発で使われる MIDL の話題として登場します。MIDL は an interface の定義言語であり、別々の言語やプロセス間でやり取りする機能の「約束事」を文書化する道具です。つまり、どんな機能を公開するか、どのデータを送るか、どんな処理を受けるかを、言語に依存しない形で記述します。
どうして MIDL が必要なのか
ソフトウェアは一般に別々の部品でできています。ある部品が別の部品に指示を出して動くとき、相手がどんなデータをどう受け取るかを前もって決めておく必要があります。これを可能にするのが MIDL です。これにより「A が B にこのデータを送るとき、こういう形で受け取る」という約束を、言語の壁を越えて作ることができます。
実際の使い方の流れ
実務では、まず .idl というファイルに インターフェースの定義、データ型、手続き の内容を記述します。その後、MIDL コンパイラ を実行して、対応する言語向けのヘッダファイルやスタブ、プロキシなどのコードを自動で生成します。生成されたファイルを自分のプログラムに組み込み、相手側の部品と通信する準備をします。
簡単なイメージで分かる例の説明
例えば、IExample というインターフェースを考え、DoSomething という機能が値を入力として受け取り、結果として別の値を返すといった“約束”を定義します。実際の IDL ではこのような記述を行い、それを基に C++ などで動くコードを作るのが MIDL の流れです。初心者向けには、まず「インターフェースとは何か」「データはどんな形で送られるのか」を意識するところから始めましょう。
学習のコツとヒント
・まずインターフェースの考え方を理解すること。データ型、ポインタ、参照渡し など、基本用語を押さえましょう。
・MIDL は Web の技術とは別の分野です。主に Windows のアプリケーションやサービス同士の内部通信で使われます。
・実際に手を動かすと理解が進みます。最初は「動くコードを作ること」よりも「どんな情報をやり取りするか」を設計することを意識してください。
表で見るポイント
| 項目 | 説明 |
|---|---|
| 目的 | 言語やプロセスの壁を越えて通信の仕様を定義する |
| 主な場面 | Windows API、COM、RPC など |
| 出力物 | ヘッダやスタブといったコードの自動生成ファイル |
要点のまとめ
midl は初心者にとって最初は難しく感じるかもしれませんが、基本を押さえると「部品同士がどうやって話すか」を理解する強力な道具になります。今の段階では、言葉の意味と使われる場面を知ることが第一歩です。
midlの同意語
- MIDL
- Microsoft Interface Definition Languageの略。Microsoftが提供する、RPC/COMなどのインターフェイスを定義するための専用言語。
- Microsoft Interface Definition Language
- Microsoftが提供する、インターフェイスを定義する言語の正式名称。MIDLの完全形。
- Interface Definition Language (IDL)
- インターフェイスを定義するための一般的な言語群の名称。MIDLはその一つの実装例。
- 中間
- 位置・状態が中間にあることを表す日本語。英語の middle や mid に対応する概念。
- 中間部
- 全体の中央寄りの部分を指す語。例:データの中間部にある要素。
- 中央
- 全体の中心に位置する点・領域を指す語。中間とほぼ同義。
- 真ん中
- 物の中心点・最も中心の部分を指す語。日常会話でよく使われる表現。
- 中程
- 物事の中央寄りの時期や場所を指す語。
- 中盤
- 物語・ゲーム・工程などの途中の段階を指す語。
- ミドル
- 中間・中位を指すカタカナ語。英語の middle に対応する表現。
- 中位
- 順位・階層が中くらいであることを示す語。
- 中心部
- 全体の中心にある部位を指す語。
midlの対義語・反対語
- 端
- 中間ではなく端の位置を表す語。中心から離れた外縁を示す対義語として使われることが多いです。
- 外側
- 中央部の反対語で、内側よりも外の位置を指す語。
- 周辺
- 中心ではなく周囲・周辺部を指す語。対義語として使われることがあります。
- 極端
- 中庸や穏健さから離れた、強く偏った状態を表す語。
- 辛い
- 味が穏やかでない、刺激が強い状態を表す語。ミドルの対義語としてよく使われます。
- 刺激的
- 味や印象が鋭く強いことを表す語。
- 激しい
- 強くて穏やかさがない状態を表す語。
- 厳しい
- 条件・評価が甘くなく、厳格なさまを指す語。
- 過酷
- 非常に厳しく苦しい状況を指す語。
- 強い
- 力・影響・味が大きい状態を表す語。
midlの共起語
- MIDL
- Microsoft Interface Definition Language(マイクロソフトのインターフェース定義言語。COM/RPC のためのインターフェースを記述する言語です)
- IDL
- Interface Definition Language(インターフェース定義言語。MIDL の親概念で、さまざまなプラットフォームで使われます)
- MIDLファイル
- MIDL で記述されたファイル。拡張子は通常 .idl です。
- MIDLコンパイラ
- MIDL を実行するツール。C/C++ のヘッダやソースを自動生成します。
- MIDL.EXE
- Windows 上で動く MIDL コンパイラの実行ファイル名。
- RPC
- Remote Procedure Call(遠隔手続き呼び出し)。MIDL は RPC の定義を作る用途にも使われます。
- DCERPC
- DCE/RPC。MIDL はこの RPC 系の定義にも用いられてきました。
- COM
- Component Object Model。MIDL で定義したインタフェースを COM で利用・実装します。
- Windows
- Windows 環境で広く使われる定義言語・ツール群の前提となるプラットフォーム。
- ヘッダーファイル
- MIDL が生成する C/C++ のヘッダファイル。インタフェース定義の宣言が含まれます。
- 生成コード
- MIDL が自動生成するコード一式(ヘッダ、インタフェース実装の雛形など)
- インタフェース
- 公開される機能の境界。MIDL で定義される主要対象。
- 拡張子
- .idl の拡張子を指すことが多いです。
- IDLファイル
- IDL 言語で書かれたファイル。MIDL で処理対象となります。
- データ型
- MIDL で定義するデータ型の総称。基本型・構造体・列挙型・配列などが含まれます。
- 構造体
- 複数のメンバを一つのデータとして扱う定義。MIDL でも宣言できます。
- 列挙型
- 定数の集合を列挙したデータ型。
- 配列
- 同一型のデータを連続して格納するデータ構造の定義。
- ポインタ
- 他のデータ型への参照を表す型。MIDL でも参照定義が可能です。
- HRESULT
- Windows の標準的な戻り値型。MIDL 定義の戻り値として現れることが多いです。
- コマンドライン
- MIDL はコマンドラインで実行することが多いツールです。
- 相互運用
- 異なる言語・環境間で動作を連携させる目的で MIDL が使われます。
midlの関連用語
- MIDL
- Microsoft Interface Definition Language。Windowsの分散アプリケーションで使われる、インターフェースを定義する言語です。RPCやCOMの仕様を記述します。
- IDL
- Interface Definition Language。インターフェースを定義するための一般的な言語の総称で、MIDLは Windows 向けの実装です。
- RPC
- Remote Procedure Call の略。ネットワーク越しに別のプロセスや別のマシン上の関数を呼び出す仕組みです。
- COM
- Component Object Model。Windowsで再利用可能な部品(オブジェクト)を組み合わせて使う技術です。
- DCOM
- Distributed COM。RPC を使ってネットワーク越しに COM オブジェクトを操作する仕組みです。
- Proxy
- 境界をまたぐ呼び出しを実現する代理コードのこと。クライアント側の呼び出しをサーバ側へ中継します。
- Stub
- Proxy に対して呼び出しを受け取り、実装側へ届ける受け側のコードです。
- マーシャリング
- データを境界間で正しく送受信できるよう、データ形式を整える処理のことです。
- Type Library (TLB)
- COM のインターフェース情報を含むファイル。クライアントとサーバが同じ定義を共有するために使います。
- GUID
- Globally Unique Identifier の略。全世界で一意な識別子です。
- UUID
- Universally Unique Identifier の略。GUIDと同義で使われることがあります。
- IID
- Interface Identifier。特定のインターフェースを識別する GUID です。
- CLSID
- Class Identifier。COM クラスを識別する GUID です。
- NDR
- Network Data Representation。RPC でデータを送るときの表現形式です。
- NDR64
- NDR の 64 ビット版。64bit 環境でのデータマーシャリングに対応します。
- MIDLコンパイラ
- IDL ファイル (.idl) をヘッダ、Proxy/Stub、TLB へ変換するコマンドラインツールです。
- IDLファイル
- Interface Definition を記述するファイル。拡張子は .idl です。
- パラメータ属性
- MIDL の引数の受け渡し方向を示す属性です。例: [in]、[out]、[in, out]。
- size_is
- 配列のサイズを指定する属性。要素数を決めます。
- length_is
- 配列の長さを指定する属性。配列の長さを定義します。
- string
- 文字列型のマーシャリングを示す属性です。文字列データの処理を指定します。
- interface
- IDL の基本単位で、クライアントとサーバが相互に呼び出す関数セットを定義します。
- typedef / struct / enum / union
- IDL のデータ型定義ブロック。新しい型を定義するために使います。
- IDispatch
- COM の自動化(Automation)用インターフェース。スクリプトから操作しやすくするための I/F です。
- Automation
- COM の自動化/スクリプティング対応の機能。



















