zoukankan      html  css  js  c++  java
  • Mex混合编程专题二:MEX Hello Word

    VS2010中写mex入门级工程代码

     接着上一篇文章的工程继续,如下代码:


    #include "stdafx.h" #include "mextest.h" #include "mex.h" #include <stdio.h> void hello() { printf("Hello World "); } void mexFunction ( int nlhs, mxArray *plhs[], int nrhs, const mxArray*prhs[]) { hello(); }

    将上面的代码都复制到mextest.cpp文件里面,把里面预生成的代码都覆盖掉。

    项目右键,生成。

    怎么样?出错了没?

    没出错,恭喜你!

    出错了?是不是“无法解析的外部符号错误呢?”,那就要记得去专题一里面看看2.a.2)了哦,看看是不是自己的工程和安装的matlab的lib文件不兼容,要保证工程了依赖的lib文件要么都是32位的要么都是64位的。

    改变生成文件后缀

    项目->右键->属性->常规,把目标文件扩展名由.dll改为.mexw64,当然,如果是32位程序就是.mexw32

    clip_image002


    VS2010中调试MEX

    如何将matlab与vs2010捆绑起来调试程序是之前最大的困惑。在网上找资源,发现http://www.cnblogs.com/avril/archive/2012/09/12/2681192.htmlhttp://www.cnblogs.com/lukylu/p/4042306.html说的都挺好的。在这来份图文版的。

    Step1. vs2010-Tools-附加到线程 Attach to process-选择matlab(快捷键Ctrl+Alt+P)。

    clip_image003

    Step2. 选择Matlab

    clip_image005

    Step3. VS进入调试状态。在上面写的mextest.cpp相应位置处下断点。

    Step4. 将matlab的current folder 设置成mex生成文件所在的路径。(这步非常重要,要不无法调试调用)

    Step5. 调用的函数名就是dll的主文件名。在这个例子里面就是mextest.mex64。这样就在matlab命令行里面输入mextest,回车进入VS断点!clip_image007

    继续运行,matlab里面Hello word出现没?

    clip_image008:D

    1. 任何单位或个人认为本博的内容可能涉嫌侵犯其合法权益,可以及时的联系我(olenet#126#com),我会立即更正或删除。

    2. 欢迎转载,记得贴链接^_^。www.cnblogs.com/OleNet

  • 相关阅读:
    样式问题
    布局
    通用模板实现可变参数函数
    使用单例模式实习string类
    动态生成一维数组和二维数组
    自定义的类传数据到主窗口控件上的方法
    使用TableView
    G480折腾上了黑苹果,完美了,哈哈
    error C2383: 此符号中不允许有默认参数
    动态链接库的隐式动态链接和显示动态链接
  • 原文地址:https://www.cnblogs.com/OleNet/p/4347722.html
Copyright © 2011-2022 走看看