外部インタフェース/API | ![]() ![]() |
Dynamic Data Exchange (DDE)
MATLABは、他のWindowsアプリケーションにアクセスしたり、他のWindowsアプリケーションがMATLABに幅広い状況でアクセスするための関数を提供します。これらの関数は、Microsoft Windowsのアプリケーションがデータを交換して互いに通信するためのソフトウェアであるdynamic data exchange (DDE)を使います。
アプリケーションは、DDE通信. を行うことでお互いに通信を行います。通信を始めるアプリケーションは、クライアント と呼ばれます。クライアントアプリケーションに応答するアプリケーションは、サーバ と呼ばれます。
クライアントアプリケーションがDDE通信を開始するとき、サーバで定義される2つのDDEパラメータを識別しなければなりません。
サーバアプリケーションがサポートされているトピックを含む通信の要求を受け取るとき、要求を認識しDDE通信を確立します。サービスとトピックの組合せは、通信を一意的に識別します。サービスまたはトピックは、サービスが複数の通信を保持していても通信中に変更されません。
DDE通信中に、クライアントとサーバのアプリケーションはアイテムに関係するデータを交換します。アイテム は、通信内の両方のアプリケーションにとって意味があるデータへの参照です。どちらのアプリケーションも、通信中にアイテムを変更できます。これらの概念は、下記で詳しく説明します。
サービス名
DDEサーバになりうるすべてのアプリケーションは、一意的なサービス名 を持ちます。サービス名は、普通アプリケーションの拡張子が付かない実行ファイル名です。サービス名は、大文字と小文字の区別を行いません。以下は、一般に用いられるサービス名です。
その他のWindowsアプリケーションに対するサービス名は、アプリケーションのドキュメントを参照してください。
トピック
トピック は、DDE通信の題名を定義し、普通クライアントとサーバのアプリケーションの両方に意味があるものです。トピック名は、大文字と小文字の区別を行いません。MATLABのトピックは、System とEngine で、「サーバとしてMATLABにアクセスする」で説明します。ほとんどのアプリケーションは、System トピックと、少なくともあと1つのトピックをサポートします。サポートされているトピックについての情報は、アプリケーションのドキュメントを調べてください。
アイテム
各トピックは、1つまたは複数のアイテムをサポートします。アイテムは、DDE通信中に渡されるデータのことです。アイテムが大文字と小文字の区別を行うかどうかは、アプリケーションに依存します。行列名は区別を行うので、MATLAB Engine アイテムが行列を参照する場合は、区別を行います。
DDEは、アプリケーション間でフォーマットされたデータを送信するために、Windowsのクリップボード書式を使います。クライアントとしては、MATLABはText書式のみをサポートします。サーバとしては、MATLABは下記に示すようにText, Metafilepict, XLTable書式をサポートします。
null
キャラクタで終わるキャラクタのバッファです。バッファ内のテキスト行は、キャリッジリターンとラインフィードの組み合わせで区切られます。バッファがデータの列を含む場合は、それらの列はタブキャラクタで区切られます。MATLABは、リモートのEvalStringコマンドの結果を得るためにText書式をサポートし、行列データを要求します。行列データは、MATLABにText書式で送信されます。![]() | MATLABをDCOM Serverとして使う | サーバとしてMATLABにアクセスする | ![]() |