Main Content

libstruct

MATLAB 構造体を、共有 C ライブラリと使用するために C スタイルの構造体に変換

説明

S = libstruct(structtype) は、MATLAB® libstruct オブジェクト S への NULL ポインターを作成します。

S = libstruct(structtype,mlstruct)mlstruct に初期化されたポインターを作成します。

すべて折りたたむ

c_struct 型の変数を作成して関数 addStructFields を呼び出します。

matlabroot\extern\examples\shrlib フォルダー内の shrlibsample ライブラリを読み込みます。これには c_struct 型が含まれます。

if ~libisloaded('shrlibsample')
   addpath(fullfile(matlabroot,'extern','examples','shrlib'))
   loadlibrary('shrlibsample')
end

shrlibsample の関数 シグネチャを表示し、addStructFields エントリをリスト内で検索します。

libfunctionsview shrlibsample
double addStructFields(c_struct)

入力引数は c_struct データ型へのポインターです。

MATLAB 構造体 sm を作成します。

sm.p1 = 476;   sm.p2 = -299;   sm.p3 = 1000;

c_struct 型の libstruct オブジェクト sc を作成します。

sc = libstruct('c_struct',sm)

sc のフィールドには MATLAB 構造体 sm の値が含まれます。

関数 addStructFields を呼び出します。

calllib('shrlibsample','addStructFields',sc)
ans =
    1177

クリーンアップするには、最初に libstruct オブジェクトを消去してから、次にライブラリをアンロードします。

clear sc
unloadlibrary shrlibsample

入力引数

すべて折りたたむ

共有ライブラリで定義された C 構造体。

S 内のフィールドの初期化に使用される MATLAB 構造体。

データ型: struct

出力引数

すべて折りたたむ

MATLAB libstruct オブジェクトとして返されるポインター。

制限

  • 関数 loadlibrary を使用して読み込まれたライブラリと共に使用します。

  • 関数 libstruct は、スカラー構造体のみで使用できます。

  • MATLAB 構造体を libstruct オブジェクトに変換する場合、構造体は構造体引数の要件にリストされた要件を満たさなければなりません。

ヒント

  • 共有ライブラリの関数が構造型の引数をもつ場合、libstruct を使用して引数を作成します。関数 libstruct は、ライブラリ内の関数へ渡す C スタイルの構造体を作成します。この構造体は MATLAB 構造体のように、MATLAB で処理できます。

バージョン履歴

R2006a より前に導入