Main Content

デプロイ アプリケーションでの共有ライブラリの呼び出し

MATLAB® の関数 loadlibrary を使用して、共有ライブラリを MATLAB に読み込むことができます。

ヘッダー ファイルを使用したライブラリの読み込みは、コンパイルされたアプリケーションではサポートされません。そのため、関数 loadlibrary とヘッダー ファイルを使用するアプリケーションを作成するには、次の手順に従います。

  1. プロトタイプ MATLAB ファイルを作成します。loadlibrary を次の構文で呼び出すとします。

    loadlibrary(library, header)

    プロトタイプ ファイルを作成するには、MATLAB で次のコマンドを 1 回だけ実行します。

    loadlibrary(library, header, 'mfilename', 'mylibrarymfile'); 
    これにより、現在のフォルダーに mylibrarymfile.m が作成されます。Windows® を使用している場合は、library_thunk_pcwin64.dll という名前の別ファイルも現在のフォルダーに作成されます。

  2. MATLAB での loadlibrary の呼び出しを次のように変更します。

    loadlibrary(library, @mylibrarymfile)

  3. アプリケーションをコンパイルしてデプロイします。

    • ライブラリをデプロイ アプリケーションに統合する場合は、mcc コマンドの -a オプションを使用して、ライブラリの .dlllibrary_thunk_pcwin64.dll (作成されている場合) と共に指定します。アプリケーション コンパイラ アプリまたはライブラリ コンパイラ アプリを使用している場合は、.dll ファイルをアプリの [アプリケーションの実行に必要なファイル] セクションに追加します。

    • デプロイ アプリケーションに統合されていない外部ファイルとしてライブラリを提供している場合は、ライブラリ .dll ファイルをコンパイルされたアプリケーションと同じフォルダーに配置します。Windows を使用している場合は、library_thunk_pcwin64.dll をコンパイルされたアプリケーションに統合しなければなりません。

      この方法の利点は、デプロイ アプリケーションを再コンパイルせずに、ライブラリを更新されたバージョンに置き換えられる点です。異なるバージョンでのライブラリの置き換えは、ライブラリ内の関数の関数シグネチャが変更されていない場合のみ有効です。これは、mylibrarymfile.mlibrary_thunk_pcwin64.dll がライブラリ内の関数の関数シグネチャに関連付けられているためです。

メモ

MATLAB で作成された共有ライブラリを読み込むために、MATLAB 内で loadlibrary を使用することはできません。loadlibrary の詳細については、共有ライブラリのサポートの制限を参照してください。

メモ

オペレーティング システムには関数 loadlibrary があります。これは、呼び出し側プロセスのアドレス空間内に、指定された Windows オペレーティング システム モジュールを読み込みます。

参考

関連するトピック