此示例创建了一个matlab®接口到名为C ++库的接口学校
.库在头文件中定义学校.HPP.
并且没有共享库文件。由其头文件完全定义的库称为a只有标题图书馆。如果您的库包含一个共享库文件,请参阅在Windows上发布对共享C ++库的接口或Linux上的共享c++库发布接口.
此图书馆定义代表学生和教师的课程。发布此库后,MATLAB用户可以调用函数clib.school.
包来创建学生
和老师
对象并指定名称和年龄。
验证您已选择C ++编译器。有关支持的编译器的最新列表,请参阅金宝app金宝app支持和兼容的编译器.此示例使用Mingw64编译器。
墨西哥人-设置cpp
复制学校.HPP.
标题文件到路径上的可写文件夹。此示例假定当前文件夹是H:\ Documents \ Matlab \ Publisher
.
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那“cpp_interface”那'school.hpp'),'。'那'F')
使用clibgen.generatelibrarydefinition.
函数创建库定义文件defineschool.mlx.
.
cliben.generatelibrarydefinition('school.hpp')
使用MinGW64编译器(c++)编译器。生成定义文件defineschool。mlx和数据文件'schoolData.xml'包含了MATLAB支持的21个构造的定义。金宝app1个构造需要额外的定义。要在接口中包含这些构造,请编辑defineschol .mlx中的定义。构建使用构建(defineschool)。
getName.
Matlab报告称,一个构造需要附加信息(定义)。这意味着MATLAB无法自动为其中一个功能定义签名。要提供缺少的信息,请单击链接以打开defineschool.mlx.
在Matlab Live编辑器中。
带有缺失信息的结构会被注释掉。滚动文件找到标题为“c++函数getName与MATLAB名称clib.school.getName”的部分。控件中的语句取消注释getName.
代码部分。
输入论点P.
是标量值。代替<形>
在这个陈述中用的是数字1
:
Defineargument(Getnamedefinition,“P”那“clib.school.person”那“输入”,<形状>);
Defineargument(Getnamedefinition,“P”那“clib.school.person”那“输入”,1);
保存定义文件。
验证库。
定义中间;
有关在接口中包含构造的更多信息,请参见定义MATLAB签名的缺失信息.
打电话给构建
创建接口文件的函数学校interface.dll.
在H:\ Documents \ Matlab \ Publisher \ School
文件夹。
构建(定义中间)
构建接口文件'schoolInterface.dll'。接口文件'schoolInterface.dll'内建在文件夹'H:\文档\MATLAB\出版商\学校'。要使用该库,请将接口文件文件夹添加到MATLAB路径中。
单击接口文件文件夹
链接将接口添加到路径。或者,类型:
目录'学校')
这概括
方法显示C ++类和函数的摘要学校
界面。
摘要(defineschool)
Matlab界面到学校库类Clib.school.person构造函数:clib.school.person()clib.school.person(string,uint64)clib.school.person(clib.school.person)方法:setname(字符串)设置(UINT64)字符串getName()UINT64 Getage()没有属性定义了类clib.school.teacher构造函数:clib.school.teacher()clib.school.teacher(String,uint64)clib.school.teacher(clib.school.teacher)方法:String getName()没有属性定义了类clib.school.school.student构造函数:clib.school.student()clib.school.school.student(String,uint64)clib.school.student(clib.school.student)方法:string getname()没有属性定义函数字符串clib.school.getname(clib.school.person)
调用功能学校
接口,使用matlabcl
包裹。键入包名称clib.school.
,结束一段时间。你可以按标签要查看库中定义的三个类和一个函数。
笔记
使用库类或功能后,除非您重新启动MATLAB并重建库,否则无法修改库定义。
创建一个老师。
t1 = clib.school.Teacher ('小姐。琼斯、24);
用getName.
显示老师的名字。
getName (t1)
ans =“琼斯女士”
您可以为用户提供帮助文本。有关更多信息,请参见发布MATLAB接口的帮助文本到C ++库.
为了给另一个MATLAB用户提供接口,指示他们添加学校interface.dll.
文件到命名的文件夹学校
并将该文件夹添加到MATLAB路径中。包的名称是clib.school.
.
构建
|clibgen.buildInterface.
|clibgen.generatelibrarydefinition.
|概括