matlab调c的dll库

转载 2016年08月28日 20:30:22
下面以一个简单的小例子演示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的帮助文件。

相关文章推荐

matlab生成c和c++调用的dll文件

在matlab上做了一个实验项目要转到应用中,形成dll文件能被c和c++调用。很多情况是matlab版本低找不到编译工具,或不识别本机的编译工具。 比如我的matlab开始是r2011a,实验项目也...

VC调用matlab dll方式混合编程(c风格--例2)<二>

VC与Matlab混合编程之调用动态链接库dll—— 1、是先建立 matlab 的 m 文件。 ellipsefit.m 其包含:function [Xc,Yc,A,B,Phi,P]=ell...

matlab生成VS可调用的dll文件

1、单独的m文件 matlab函数编译成dll供Cpp调用的方法 - vincenzo.lai - 博客园

MFC与Matlab编程总结 (以《Matlab与C/C++混合编程技术(第三版)》-刘维 第五章 生成DLL为例)

  近期要完成一个任务,把人脸超分辨率的算法集成在一个系统中,嵌入人脸库及字典集等。老板的要求是有比较好的界面,目前也只能是VS那一套了,前一段时间完成的项目是用的MFC,这次也就是用MFC来完...

C#调用matlab写的动态链接库(dll)

最近老师在做项目,有一个需求,就是他现在用matlab写了一些操作图像的代码,但是需要在C#环境下调用。基本上就是这样的需求吧。现在老师给我的文件是,如下图: 下面我分别解释一下这些文件,希...
  • roslei
  • roslei
  • 2017年03月15日 17:16
  • 534

c++调用matlab生成的Dll动态连接库

点击打开链接 http://download.csdn.net/detail/nuptboyzhb/4228429 c++调用matlab生成的Dll动态连接库 实验平台:    matlab...

C#调用matlab写的动态链接库(dll)

最近老师在做项目,有一个需求,就是他现在用matla

VC与Matlab混合编程之调用动态链接库dll<二>

1、是先建立 matlab 的 m 文件。 这里为了简单起见,我在matlab中定义了一个函数,其m文件如下: function y = myadd(a,b) y=a+b 保存为myf...

jna调用c 的dll(包含回调函数)

创建dll .h #ifndef __MAIN_H__ #define __MAIN_H__ #include /* To use this exported function of dll,...

JNI使用实例之C、C++ DLL回调java成员函数

使用场景描述如下: 1、使用java程序调用C开发的DLL,传入一个已封装的socket对象 2、在C开发的DLL中根据传入的对象调用java提供的recv()、send()函数发送数据 java...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:matlab调c的dll库
举报原因:
原因补充:

(最多只允许输入30个字)