主要内容

发布接口到头文件库

此示例创建了一个matlab®接口到名为C ++库的接口学校.库在头文件中定义学校.HPP.并且没有共享库文件。由其头文件完全定义的库称为a只有标题图书馆。如果您的库包含一个共享库文件,请参阅在Windows上发布对共享C ++库的接口Linux上的共享c++库发布接口

此图书馆定义代表学生和教师的课程。发布此库后,MATLAB用户可以调用函数clib.school.包来创建学生老师对象并指定名称和年龄。

验证选定的c++编译器

验证您已选择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)。

定义c++函数的缺失信息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.

也可以看看

|||

相关的话题