最近需要制作一个C的插件,需要使用MATLAB代码,所以想通过C语言调用MATLAB的动态链接库实现。以下实现过程参考了MATLAB的help~
编译环境:MATLAB2014a、Visual Studio2010
- 首先,在MATLAB中新建一个.m文件,命名为dll_test.m并保存,内容如下:
function c = dll_test(a) %#codegen
c = sqrt(a);
end
使用codegen命令生成DLL:
这里先简单介绍一下codegen命令:
- 上一步成功之后在目录./codegen/dll/dll_test下可以看到生成的所有文件。在VS2010下新建一个控制台工程,将之前生成的依赖文件dll_test.dll拷贝到工程目录下,并且添加一个c/c++文件到工程中,内容如下:
#include "dll_test.h"#include "dll_test_initialize.h"#include "dll_test_terminate.h"#include <stdio.h>int main(){ dll_test_initialize(); printf("%f\n", dll_test(25)); dll_test_terminate(); //gerchar(); return 0;}
- VS默认配置是Win32 Debug模式,根据你之前生成的DLL,选择win32 Release还是x64 Release;
- 选中VS项目,右键->属性,选择C/C++ ->常规->附加包含目录,添加目录 ./codegen/dll/dll_test;选择链接器->常规->附加库目录,添加路径同上;选择链接器->输入->附加依赖项,将dll_test.lib加入;确定;
- VS配置完成,完美运行~
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。