デプロイ アプリケーションでの共有ライブラリの呼び出し
MATLAB® の関数 loadlibrary
を使用して、共有ライブラリを MATLAB に読み込むことができます。
ヘッダー ファイルを使用したライブラリの読み込みは、コンパイルされたアプリケーションではサポートされません。そのため、関数 loadlibrary
とヘッダー ファイルを使用するアプリケーションを作成するには、次の手順に従います。
プロトタイプ MATLAB ファイルを作成します。
loadlibrary
を次の構文で呼び出すとします。loadlibrary(library, header)
プロトタイプ ファイルを作成するには、MATLAB で次のコマンドを 1 回だけ実行します。
これにより、現在のフォルダーにloadlibrary(library, header, 'mfilename', 'mylibrarymfile');
が作成されます。Windows® を使用している場合は、mylibrarymfile
.mlibrary_thunk_pcwin64.dll
という名前の別ファイルも現在のフォルダーに作成されます。MATLAB での
loadlibrary
の呼び出しを次のように変更します。loadlibrary(library, @mylibrarymfile)
アプリケーションをコンパイルしてデプロイします。
ライブラリをデプロイ アプリケーションに統合する場合は、
mcc
コマンドの-a
オプションを使用して、ライブラリの.dll
をlibrary_thunk_pcwin64.dll
(作成されている場合) と共に指定します。アプリケーション コンパイラ アプリまたはライブラリ コンパイラ アプリを使用している場合は、.dll
ファイルをアプリの [アプリケーションの実行に必要なファイル] セクションに追加します。デプロイ アプリケーションに統合されていない外部ファイルとしてライブラリを提供している場合は、ライブラリ
.dll
ファイルをコンパイルされたアプリケーションと同じフォルダーに配置します。Windows を使用している場合は、library_thunk_pcwin64.dll
をコンパイルされたアプリケーションに統合しなければなりません。この方法の利点は、デプロイ アプリケーションを再コンパイルせずに、ライブラリを更新されたバージョンに置き換えられる点です。異なるバージョンでのライブラリの置き換えは、ライブラリ内の関数の関数シグネチャが変更されていない場合のみ有効です。これは、
とmylibrarymfile
.mlibrary_thunk_pcwin64.dll
がライブラリ内の関数の関数シグネチャに関連付けられているためです。
メモ
MATLAB で作成された共有ライブラリを読み込むために、MATLAB 内で loadlibrary
を使用することはできません。loadlibrary
の詳細については、共有ライブラリのサポートの制限を参照してください。
メモ
オペレーティング システムには関数 loadlibrary
があります。これは、呼び出し側プロセスのアドレス空間内に、指定された Windows オペレーティング システム モジュールを読み込みます。