主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

头只C++ライブラリに対するインターフェイスのパブリッシュ

この例では,学校という名前のc++ライブラリに対するMATLAB®インターフェイスを作成します。ライブラリはヘッダーファイルschool.hpp内で定義され,共有ライブラリファイルをもちません。ヘッダーファイルによりすべてが定義されたライブラリは,“ヘッダー専用”ライブラリと呼ばれます。ライブラリに共有ライブラリ ファイルが含まれる場合は、Windowsの共有c++ライブラリに対するインターフェイスのパブリッシュまたはLinuxの共有c++ライブラリに対するインターフェイスのパブリッシュを参照してください。

このライブラリは,学生と教師を表すクラスを定義します。このライブラリをパブリッシュした後,MATLABユーザーはclib.schoolパッケージ内の関数を呼び出し,学生オブジェクトと老师オブジェクトを作成して,名前と年齢を指定できます。

選択したc++コンパイラの確認

c++コンパイラが選択されていることを確認します。サポートされているコンパイラの最新の一覧については,サポートされるコンパイラを参照してください。この例はMinGW64コンパイラを使用します。

墨西哥设置cpp

サンプルヘッダーファイルのコピー

school.hppヘッダーファイルをパス上の書き込み可能フォルダーにコピーします。この例では,現在のフォルダーがH: \ \ MATLAB \出版商的文档であると仮定しています。

拷贝文件(fullfile (matlabroot,“外人”“例子”“cpp_接口”“school.hpp”),“。”“f”

定義ファイルの生成

関数clibgen.generateLibraryDefinitionを使用して、ライブラリ定義ファイルdefineschool.mlxを作成します。

clibgen.generateLibraryDefinition (“school.hpp”
使用MinGW64编译器(C++)编译器。生成的定义文件defineschool.mlx和数据文件'schoolData.xml'包含MATLAB支持的21种结构的定义。1构造需要附加定义。要在界面中包含这些构造,请编辑defineschool.mlx中的定义。使用Build(定义学校)构建。金宝app

c++関数getNameの不足している情報の定義

MATLABは1つの構成要素に追加情報(定義)が必要であることを報告します。これは,MATLABがいずれかの関数のシグネチャを自動的に定義できないことを意味します。不足している情報を提供するには,リンクをクリックしてMATLABライブエディターでdefineschool.mlxを開きます。

情報の不足している構成要素がコメント アウトされます。ファイルをスクロールして、“C++函数getName与MATLAB名称clib.school.getName”というタイトルのセクションを見つけます。getNameコードセクションでステートメントのコメントを解除します。

入力引数pはスカラー値です。このステートメントの<形>を数値1に置き換えます。

defineArgument (getNameDefinition“p”“clib.school.Person”“输入”, <形>);
defineArgument (getNameDefinition“p”“clib.school.Person”“输入”1);

定義ファイルを保存します。

ライブラリを検証します。

defineschool;

構成要素をインターフェイスに含める方法の詳細については,MATLABシグネチャに不足している情報の定義を参照してください。

インターフェイスのビルドとMATLABパスへの追加

関数建筑を呼び出して,インターフェイスファイルschoolInterface.dllH: \ MATLAB文件\ \出版商\学校フォルダーに作成します。

构建(defineschool)
构建接口文件'schoolInterface.dll'。接口文件'schoolInterface.dll'内置于'H:\Documents\MATLAB\publisher\school'文件夹中。要使用该库,请将接口文件文件夹添加到MATLAB路径中。

接口文件文件夹リンクをクリックしてインターフェイスをパスに追加します。または,以下を入力します。

目录“学校”

ライブラリの内容の表示

总结メソッドは,学校インターフェイスに定義されたc++のクラスおよび関数の概要を表示します。

总结(defineschool)
clib.school.Person类的MATLAB接口clib.school.Person() clib.school.Person(string,uint64) clib.school.Person(clib.school.Person)方法:setName(string) setAge(uint64) string getName() uint64 getAge()无属性定义类clib.school.Person:clib.school.Teacher() clib.school.Teacher(string,uint64) clib.school.Teacher(clib.school.Teacher)方法:string getName()没有定义类的属性clib.school.Student构造函数:clib.school.Student() clib.school.Student(string,uint64)string getName() No Properties defined Functions

関数のテスト

機能を学校インターフェイスに呼び出すには,MATLABclibパッケージを使用します。パッケージ名clib.schoolを入力し,最後にピリオドを付けます。选项卡キーを押して,ライブラリ内に定義された3つのクラスと1つの関数を表示できます。

メモ

ライブラリ クラスまたは関数を一度使用すると、MATLABを再起動してライブラリをリビルドしない限り、ライブラリ定義を変更することはできません。

教師を作成します。

t1 = clib.school.Teacher (“琼斯女士”、24);

getNameを使用して,教師の名前を表示します。

getName (t1)
ans =“琼斯女士”

ヘルプテキストの変更

ユーザーにヘルプ テキストを提示できます。詳細については、c++ライブラリに対するMATLABインターフェイスのヘルプテキストのパブリッシュを参照してください。

インターフェイスの配布

インターフェイスを他のMATLABユーザーに提供するには,ユーザーに,ファイルschoolInterface.dll学校という名前のフォルダーに追加してそのフォルダーをMATLABパスに追加するように指示します。パッケージ名はclib.schoolです。

参考

|||

関連するトピック