このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB コードを使用した汎用 COM コンポーネントの作成
サポートされるプラットフォーム: Windows®
この例では、MATLAB® 関数を使用して汎用 COM コンポーネントを作成し、アプリケーションに統合する方法を説明します。MATLAB のライセンス コピーがターゲット システムにインストールされている必要はありません。
前提条件
Windows 10 SDK キットがインストールされていることを確認します。詳細については、Windows 10 SDK を参照してください。
MinGW-w64 がインストールされていることを確認します。MathWorks File Exchange からインストールするには、MATLAB Support for MinGW-w64 C/C++ Compiler を参照してください。
MATLAB で Windows 10 SDK キットと MinGW-w64 を確実に検出するには、次のコマンドを使用します。
mbuild -setup -client mbuild_com
Microsoft® Visual Studio® がインストールされていることを確認します。
アプリケーションの実行には、エンド ユーザーによる MATLAB Runtime のインストールが必要です。詳細については、MATLAB Runtime のインストールと構成を参照してください。
テスト目的で、MATLAB Runtime の代わりに MATLAB のインストールを使用することができます。
MATLAB での関数の作成
MATLAB で、パッケージ化する MATLAB コードを調べます。この例では、
にある matlabroot
\toolbox\dotnetbuilder\Examples\VSVersion
\COM\MagicSquareExample\MagicSquareCompmakesquare.m
を開きます。
function y = makesquare(x)
y = magic(x);
MATLAB コマンド プロンプトで、makesquare(5)
と入力します。
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
ライブラリ コンパイラ アプリを使用した汎用 COM コンポーネントの作成
ライブラリ コンパイラ アプリを使用して、関数を COM コンポーネントにパッケージ化します。あるいは、プログラムによる方法を使用して MATLAB コマンド ウィンドウから COM コンポーネントを作成する場合は、compiler.build.COMComponent を使用した COM コンポーネントの作成を参照してください。
[MATLAB アプリ] タブで、[アプリ] セクションの右端にある矢印をクリックします。[アプリケーションのデプロイ] で、[ライブラリ コンパイラ] をクリックします。[MATLAB Compiler] プロジェクト ウィンドウで、[汎用 COM コンポーネント] をクリックします。
または、MATLAB プロンプトで
libraryCompiler
と入力し、[ライブラリ コンパイラ] アプリを開きます。ライブラリ コンパイラ アプリのプロジェクト ウィンドウで、デプロイする MATLAB アプリケーションのファイルを指定します。
ツールストリップの [エクスポートする関数] セクションで、 をクリックします。
[ファイルの追加] ウィンドウで、サンプルのフォルダーを参照し、パッケージ化する関数を選択します。[開く] をクリックします。
エクスポートする関数ファイルのリストに関数が追加されます。同じアプリケーションに複数のファイルをパッケージ化するには、この手順を繰り返します。
ツールストリップの [パッケージ化オプション] セクションで次のオプションのいずれかを選択して、生成されるアプリケーションに MATLAB Runtime インストーラーを含めるかどうかを決定します。
ランタイムを Web からダウンロード — MATLAB Runtime をダウンロードしてデプロイされた MATLAB アプリケーションと共にインストールするインストーラーを生成します。インストーラーのファイル名を指定できます。
ランタイムをパッケージに含める — MATLAB Runtime インストーラーを含むアプリケーションを生成します。インストーラーのファイル名を指定できます。
メモ
このオプションを初めて選択したときに、MATLAB Runtime インストーラーをダウンロードするように求めるメッセージが表示されます。
[ライブラリ名] フィールドで、
makesquare
をMagicSquareComp
に置き換えます。makesquare.m
で定義された関数がClass1
にマッピングされていることを確認します。
アプリケーションとその外観のカスタマイズ
ライブラリ コンパイラ アプリでは、インストーラーをカスタマイズし、アプリケーションをカスタマイズし、アプリケーションについて情報を追加することができます。
ライブラリ情報 — デプロイされるアプリケーションに関する情報。また、アプリケーション アイコンとスプラッシュ スクリーンを変更して、アプリケーションの外観をカスタマイズすることもできます。生成されるインストーラーはこの情報を使用して、インストールされるアプリケーションのメタデータを入力します。インストーラーのカスタマイズを参照してください。
追加インストーラー オプション — 生成されるインストーラーの既定のインストール パスと、カスタム ロゴの選択。インストール パスの変更を参照してください。
ライブラリの実行に必要なファイル — 生成されるアプリケーションを実行するために必要な追加ファイル。これらのファイルは、生成されるアプリケーション インストーラーに含められます。コンパイラ プロジェクトの必須ファイルの管理を参照してください。
エンド ユーザー用にインストールされるファイル — アプリケーションと共にインストールされるファイル。
アプリケーションと共にインストールするファイルの指定を参照してください。
ランタイム追加設定 — 生成される実行可能ファイルを制御するためのプラットフォーム固有のオプション。ランタイム追加設定を参照してください。
アプリケーションのパッケージ化
パッケージ化オプションの選択が終了したら、ライブラリ コンパイラのプロジェクトを保存し、パッケージ化されたアプリケーションを生成します。
[パッケージ化] をクリックします。
[プロジェクトを保存] ダイアログ ボックスで、プロジェクトを保存する場所を指定します。
[パッケージ] ダイアログ ボックスで、[プロセスが完了したら出力フォルダーを開く] が選択されていることを確認します。
パッケージ化プロセスが完了したら、ターゲット フォルダー内の生成された出力を調べます。
3 つのフォルダー
for_redistribution
、for_redistribution_files_only
、およびfor_testing
が生成されます。これらのフォルダーに生成されるファイルの詳細については、MATLAB 関数のパッケージ化後に生成されるファイルを参照してください。
ログ ファイル
PackagingLog.html
にはパッケージ化の結果が含まれています。
compiler.build.COMComponent
を使用した COM コンポーネントの作成
ライブラリ コンパイラ アプリの代わりに、プログラムによる方法を使用して COM コンポーネントを作成できます。ライブラリ コンパイラ を使用してコンポーネントが既に作成されている場合は、COM アプリケーションへの統合を参照してください。
にあるmatlabroot
\toolbox\dotnetbuilder\Examples\VSVersion
\COM\MagicSquareExample\MagicSquareCompmakesquare.m
ファイルへのパスを保存します。たとえば、Visual Studio Version 15 を使用している場合は、次のように入力します。appFile = fullfile(matlabroot,'toolbox','dotnetbuilder','Examples', ... 'VS15','COM','MagicSquareExample','MagicSquareComp','makesquare.m');
関数
compiler.build.comComponent
を使用して COM コンポーネントをビルドします。名前と値の引数を使用してコンポーネント名とクラス名を指定します。buildResults = compiler.build.comComponent(appFile, ... 'ComponentName','MagicSquareComp', ... 'ClassName','Class1');
compiler.build
コマンドで名前と値の引数を使用して、追加オプションを指定できます。詳細については、compiler.build.comComponent
を参照してください。compiler.build.Results
オブジェクトbuildResults
には、ビルド タイプ、生成ファイル、含まれるサポート パッケージ、およびビルド オプションに関する情報が含まれています。この関数により、現在の作業ディレクトリにある
MagicSquareCompcomComponent
という名前のフォルダー内に以下のファイルが生成されます。magicsquare.def
magicsquare.rc
magicsquare_1_0.dll
readme.txt
requiredMCRProducts.txt
unresolvedSymbols.txt
Class1_com.cpp
— クラスを定義する C++ ソース コード ファイル。Class1_com.hpp
— クラスを定義する C++ ヘッダー ファイル。dlldata.c
— DLL のクラス ファクトリに必要なエントリ ポイントとデータ構造が含まれる C ソース コード ファイル。GettingStarted.html
— COM コンポーネントのインストールの手順が含まれる HTML ファイル。includedSupportPackages.txt
— 含まれているサポート パッケージに関する情報が含まれるテキスト ファイル。MagicSquareComp.def
— DLL エクスポート テーブルにどの関数を含めるかを定義するモジュール定義ファイル。MagicSquareComp.rc
— コンポーネントで使用されるリソースを記述するリソース スクリプト ファイル。MagicSquareComp_1_0.dll
— ダイナミックリンク ライブラリ ファイル。MagicSquareComp_dll.cpp
— 補助関数が含まれる C++ ソース コード ファイル。MagicSquareComp_idl.h
— C++ ヘッダー ファイル。MagicSquareComp_idl.idl
— インターフェイス定義言語ファイル。MagicSquareComp_idl.tlb
— COM オブジェクトのプロパティおよびメソッドに関する情報が含まれるタイプ ライブラリ ファイル。MagicSquareComp_idl_i.c
— IDL インターフェイスの IID および CLSID が含まれる C ソース コード ファイル。MagicSquareComp_idl_p.c
— IDL インターフェイスのプロキシ スタブ コードが含まれる C ソース コード ファイル。mccExcludedFiles.log
— アプリケーションに含まれていないすべてのツールボックス関数のリストが含まれるログ ファイル。サポートされていない関数の詳細については、MATLAB Compiler の制限を参照してください。mwcomtypes.h
— インターフェイスの定義が含まれる C++ ヘッダー ファイル。mwcomtypes_i.c
— IID および CLSID が含まれる C ソース コード ファイル。mwcomtypes_p.c
— プロキシ スタブ コードが含まれる C ソース コード ファイル。readme.txt
— デプロイ情報が含まれるテキスト ファイル。requiredMCRProducts.txt
— MATLAB Runtime がアプリケーションを実行するために必要な製品の製品 ID が含まれるテキスト ファイル。unresolvedSymbols.txt
— 未解決のシンボルに関する情報が含まれるテキスト ファイル。
メモ
生成されたコンポーネントには MATLAB Runtime またはインストーラーが含まれていません。
buildResults
オブジェクトを使用してインストーラーを作成するには、compiler.package.installer
を参照してください。
COM アプリケーションへの統合
COM コンポーネントをアプリケーションに統合するには、Creating the Microsoft Visual Basic Projectを参照してください。
参考
compiler.build.comComponent
| ライブラリ コンパイラ | mcc
| deploytool