打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在VS2010中调用MATLAB生成的DLL

最近需要制作一个C的插件,需要使用MATLAB代码,所以想通过C语言调用MATLAB的动态链接库实现。以下实现过程参考了MATLAB的help~

编译环境:MATLAB2014a、Visual Studio2010

  1. 首先,在MATLAB中新建一个.m文件,命名为dll_test.m并保存,内容如下:
    function c = dll_test(a)  %#codegen
        c = sqrt(a);
    end
  2. 使用codegen命令生成DLL:

    这里先简单介绍一下codegen命令:

    • codegen命令用于从MATLAB代码获取C/C++代码,常见的两种命令格式:
      codegen options file file1_name args...filen_name argscodegen project_name
      其中第一种用于处理文件,第二种用于处理工程;参数args表示示例输入,并不进行真正的参数传递;参数files是生成C/C++时需要包含的文件(.c/.cpp/.h/.obj/.lib/.tmf);options规定了生成的目标代码类型(dll/exe/lib/mex),命令为-config:dll(其他类似),具体命令解析可以在MATLAB命令行输入help codegen查看;
    • 将当前路径更改为.m文件的保存路径,然后在命令行中输入以下命令:
    • codegen -report -config:dll dll_test -args {0}
      其中-report可以产生一份生成状态的报告:生成成功后的文件或错误报告;生成错误的话,重选路径,注意args与参数{0}之间有空格,多个参数空格分隔;
  3. 上一步成功之后在目录./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配置完成,完美运行~
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
matlab 2008与VS2008的混合编程
C# 调用 Matlab
Matlab生成dll使用Python调用+Python安装文件直接生成
post
获取Excel.dll
VS2005中调试DLL库
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服