使用C风格的包装器函数从C函数块调用c++类方法
这个例子展示了如何使用C Function块使用C风格的包装器函数调用c++类方法。对于一些c++类,例如模板类,C Function块不支持类对象的直接实例化或类方法的调用,因此需要使用C包装器函数。万博1manbetx看到使用C函数块与c++类交互.有关C函数块直接访问c++类成员和方法的示例,请参见直接从C函数块调用c++类方法.
在本例中,c风格的包装器函数在中声明adder_wrapper.h
并在adder_wrapper.cpp
.
要运行这个示例模型,您必须配置MATLAB®以使用c++编译器。可以使用墨西哥人设置
命令,并选择c++编译器。
中指定头文件和源文件,以启用从C Function块调用C函数模拟目标面板中的模型配置参数对话框。在这个模型中,自定义代码头文件adder_template.h
定义了一个加法器
类模板以及类成员函数。头文件adder_wrapper.h
包含在C函数块中调用的C风格包装器函数的声明。c风格包装器函数的原型是:
void * createAdder ()
void deleteAdder(void *obj)
int adderOutput(void *obj, int increment)
在哪里void * obj
类对象的句柄和增量
是加法器函数使用的输入。
的createAdder
函数中调用开始代码部分的C函数块对话框来构造一个对象加法器
类。的deleteAdder
函数中调用终止代码分段破坏了加法器
类对象。在输出代码节,adderOutput
函数被调用。在本例中,C Function块的端口配置如下:
的
加法器
类对象,obj
,由createAdder
函数,是持续的
C函数块的符号。C函数块的输入被映射到
增量
.函数的返回值被映射到
adderOutput
函数。