VC中单步调试matlab mex程序

 

vc中编译,单步调试mex程序:
 最好先具备如下基础:
     1.调试过dll程序;
     2. VC中编译过mex程序;
    3 . 任意一种开发工具中调试程序的能力;
    
     在VC中编译mex程序的配置步骤(如果已熟悉,跳过这段):
     1. mex -setup, mbuild -setup 选择vc编译器(这未必需要,matlab中编译肯定会有此步的);
     2. 创建DLL工程,在Project页面可以选择 MFC AppWizard(DLL);
     3. 选择静态链接MFC的DLL;
     4. 设定输出函数,在.def文件指定DLL的输出函数,mex程序为 mexFunction。类如如下:
        ; createFontBitmap.def : Declares the module parameters for the DLL.

LIBRARY      "createFontBitmap"
DESCRIPTION  'createFontBitmap Windows Dynamic Link Library'

EXPORTS
    ; Explicit exports can go here
mexFunction

     5. 环境设置
      可以在头文件中include,也可以在vc环境中,我习惯于在vc环境中设置:
      A.Tools--->Options--->Directories---->Show Directories for---->Include 然后选择 $MATLABROOT\EXTERN\INCLUDE;
      B. Tools--->Options--->Directories---->Show Directories for---->Library ,
 $MATLABROOT\LIB\WIN32\MICROSOFT\MSVC60或者是$MATLABROOT\LIB\WIN32\MICROSOFT\MSVC70,以及$MATLABROOT\EXTERN\LIB
      C. Project-->Setting, 在Link页面的Object/library modules填入 libmx.lib libmex.lib 等库,具体需要哪些库根据你的程序而定,目前这个就是上面这几个库。
    
     6. 写代码,不要我说;
   
     7. 调试:
     A. 在debug模型下进行;
     B. Project--->Setting--->Executable for debug session 填入 $MATLABROOT\bin\win32\MATLAB.exe ( 其实自己运行工程(点那个go按钮(F5))也会弹出对话框让你选择,然后浏览到matlab.exe即可;
     C. 加断点;
     D. Go(F5),会提示说matlab不可调试,你不用管它;
     E. 在新启动的MATLAB进程命令窗中中调用mex函数
     余下的与任何开发平台的任何调试步骤类似


你可能感兴趣的:(VC中单步调试matlab mex程序)