このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,学校
という名前のc++ライブラリに対するMATLAB®インターフェイスを作成します。ライブラリはヘッダーファイルschool.hpp
内で定義され,共有ライブラリファイルをもちません。ヘッダーファイルによりすべてが定義されたライブラリは,“ヘッダー専用”ライブラリと呼ばれます。ライブラリに共有ライブラリ ファイルが含まれる場合は、Windowsの共有c++ライブラリに対するインターフェイスのパブリッシュまたはLinuxの共有c++ライブラリに対するインターフェイスのパブリッシュを参照してください。
このライブラリは,学生と教師を表すクラスを定義します。このライブラリをパブリッシュした後,MATLABユーザーはclib.school
パッケージ内の関数を呼び出し,学生
オブジェクトと老师
オブジェクトを作成して,名前と年齢を指定できます。
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
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シグネチャに不足している情報の定義を参照してください。
関数建筑
を呼び出して,インターフェイスファイルschoolInterface.dll
をH: \ 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
です。
clibgen.generateLibraryDefinition
|clibgen.buildInterface
|建筑
|总结