是否可以将多个s函数组合成一个mex / dll

时间:2016-07-20 09:01:47

标签: c++ matlab dll

最近我一直在深入研究Matlab并用c ++代码扩展它。到目前为止,我已经取得了一些成功,样本timestwo通过内置的mex命令以及Visual Studio 2015的预编译形式将其编译为mex文件。我真正好奇要发现的是否是实际上可以将多个s-functions捆绑到一个模块中。

理想情况下,我想拥有一个可以包含10-20个手写代码例程的模块,因此可以在共享工具箱中使用此代码。我无法找到的是你如何强迫matlab在特定的dll中查找函数,它似乎总是使用'函数名称'作为DLL名称。有关于多功能设置的提示或示例吗?

1 个答案:

答案 0 :(得分:0)

您无法将多个s函数捆绑到单个库中。要共享代码,您需要将共享函数编译为单独的库,然后您可以将同一个库链接到每个s函数。共享库可以是静态的也可以是动态的,具体取决于您的设计。您需要确保s函数实例的所有内存分配都由s函数完成,可能作为DWorks,然后将内存传递给共享函数以进行其他工作。