在VC6中调试MEX文件

  开发环境:VC++6.0 + Matlab7.0
  采用MEX文件,将C语言编写的代码嵌人到Matlab中执行是Matlab与C语言混合编程的一种重要方式。但是,MEX文件不能在Matlab中像编写m文件那样便于调试,如果MEX文件实现的功能稍微复杂一点就会使程序的调试工作十分繁琐。尤其是对于很多已经习惯于采用C/C++开发环境的开发人员来说,更是非常的不适应。由于MEX文件就是动态链接库,因而可以采用Visual C++6.0作为开发和调试MEX文件的工具。
  一、在VC6中设置MEX环境
  1.1)添加include路径和Library路径,
  Include files:
   D:\MATLAB7\EXTERN\INCLUDE
   D:\MATLAB7\EXTERN\LIB\WIN32
  Library files:
   D:\MATLAB7\EXTERN\LIB\WIN32\MICROSOFT\MSVC50
  点击VC6工具栏上的【Tools】–》【Options】–》【Directories】–》Include file 或者Library files,添加对应的文件,如图(1)、(2)所示:  

这里写图片描述
图(1)添加Include路径
  
这里写图片描述
图(2)添加Library路径

  1.2)分别设置Matlab启动路径,C/C++选项卡和Link选项卡
  点击VC6工具栏上的【Project】–》【Seting…】 –》Debug 或者 C/C++ 或者 Link选项卡,如图(3)、(4)、(5)所示:
  
这里写图片描述
图(3)设置Matlab启动的路径
  
这里写图片描述
图(4)在C/C++选项卡的Preprocess definitions里,添加MATLAB_MEX_FILE
  
这里写图片描述
图(5)在Link选项卡的Object/moudlues里,添加三个lib文件:libmx.lib libmex.lib libmat.lib,编译默认的后缀名为.dll,根据你的系统位数可以改成mexw32或者mexw64,当然后缀名.dll不改也可以运行

  二、新建一个testMexVC的动态链接库工程
  2.1)点击【File】–》【Win32 Dynamic~Link Library】–>命名为:testMexVC –》点击An empty DLL project –》 Finish
  2.2)新建testMexVC.c文件和testMexVC.def文件
  //testMexVC.c如下: 

#include "mex.h"
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]){
    //printf("Hello world\n");
    int a=2,b=3,c=0;
    c=a+b;
    mexPrintf("%d=%d+%d\n",c,a,b);
    mexPrintf("Hello world!\n");

}

  //testMexVC.def文件如下:

LIBRARY testMexVC
EXPORTS mexFunction

  三、按F7编译,编译通过后,再按Ctrl+F5启动Matlab7.0,点击Matlab工具栏上的这里写图片描述,修改路径为..\testMexVC\Debug,接着,在Matlab的命令行窗口输入:
  testMexVC
  效果如下: 

这里写图片描述

  
图(7)先将Matlab的路径改为..\testMexVC\Debug目录下,再执行命令: testMexVC

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanqima

一键三连,多多益善

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值