1、单独的m文件
如果只有一个单独的m文件,可以参考以下两篇博客中提供的方法。主要有以下四个步骤
1. 设置matlab的编译器,使用外部的VC或者gcc等编译器。
2. 编译m文件成dll
3. 设置VS等的继承环境,设置C需要用到的静态库和动态库
4. 编写C调用dll
一些需要注意的问题。如果按照上面两篇文章设置的方法运行出现以下错误:error LNK2001: unresolved external symbol
极有可能问题出在你安装的matlab是64位的,解决方法是安装一个32位的版本的matlab重新生成一次dll文件。
2、带有多个子函数的m文件
如果需要生成的dll是一个拥有多个子函数的m文件,那么需要使用matlab中deploytool工具。网上的教程大多比较古老,下面重新演示一下新版本的deploy工具使用。
首先在命令窗口command window输入deploytool会出现下面的界面。在type中选择C++ Shared Library
然后在Exported Functions选择需要做成dll的主函数,在Shared Resource and Helper Files中选择主函数调用的子函数以及文件夹。然后就可以build(路径旁边的第一个按钮)。
下面这张图展示了build成功后会打包出来的东西,有一个.h头文件,一个.dll和一个.lib。得到这些之后,按照第一步中所教的步骤,就可以在VS工程中调用dll啦