关闭

matlab调c的dll库

标签: matlab微软visual studio
64人阅读 评论(0) 收藏 举报
分类:
下面以一个简单的小例子演示Matlab调用DLL的过程:
  1、编译器准备
    在Matlab的命令窗口输入:mex -setup
    选择你的编译器,我的是:
      [2] Microsoft Visual C++ 2008 SP1 in c:\Program Files\Microsoft Visual Studio 9.0 
  2、编写你自己的DLL
     在Visual Studio 2008中新建一个Win32的Dll工程,不妨设名字为MatlabDllTest
     编辑MatlabDllTest.cpp:
#include "MatlabDllTest.h"

double add(double x, double y)
{
    return (x+y);
}
    编辑MatlabDllTest.h:
#ifndef MATLABDLLTEST_H
#define MATLABDLLTEST_H

#ifdef __cplusplus
extern "C"
{
#endif

    __declspec(dllexport) double add(double x, double y);

#ifdef __cplusplus
}
#endif

#endif
  3、加载DLL:把编译连接之后产生的MatlabDllTest.dll和MatlabDllTest.h文件拷贝到Matlab的当前工作目录下,输入
    loadlibrary('MatlabDllTest','MatlabDllTest.h');
(一定要有这步,如果dll不成功,会显示错误原因)
 
  4、查看DLL中导出的函数
    libfunctions MatlabDllTest -full
    -full选项会列出导出函数的详细输入和输出参数,这是输出信息如下:
      Functions in library MatlabDllTest:
      double add(double, double)
  5、调用函数
    calllib('MatlabDllTest', 'add', 1.3, 4.6)
    此时就会输出正确的结果
      ans =
          5.9000
  总结:这个例子比较简单,只是为了演示整个过程,如果真的用到了Matlab来调用外部DLL的这种方式的话,就要注意DLL工程要符合Matlab的要求,详细信息请自己查看Matlab的帮助文件。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1914次
    • 积分:160
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章分类