图1

图2

读者根据MATLAB安装实际情况输入头文件和库文件的路径。

3、在MATLAB打开文本编辑器(File->New->M-file)写一个简单的m函数:

function y=huatu_test()

x=-10:0.1:10;

y=sin(x);

plot(x,y,'*')

文件保存为huatu_test.m。

4、在MATLAB命令窗口用如下命令生成dll文件和调用dll所需要的文件:

mcc -t -W libhg:dlltest -T link:lib -h libmmfile.mlib huatu_test.m

生成的文件将会保存在当前目录下,默认的当前目录为:MATLAB根目录\work,找到dlltest.h 、dlltest.lib和dlltest.dll文件,这三个文件是我们需要的。

5、在VC中新建一个名为ceshi基于对话框的工程,在工程中添加一个名为"测试"的button按钮。将dlltest.h

、dlltest.lib和dlltest.dll文件拷贝到当前工程目录下,并通过Project->Add To

Project->Files 选择拷贝到当前目录下的三个文件,将文件引入工程。

6、在ceshiDlg.cpp文件中添加头文件dlltest.h

#include "dlltest.h"

打开dlltest.h文件,里面有有关函数的定义,找到其中三个函数:

extern mxArray * mlfHuatu_test(void);

extern void dlltestInitialize(void);

extern void dlltestTerminate(void);

从函数意思不难知道它们的作用:

dlltestInitialize   用来初始化dll库,

dlltestTerminate    用来结束调用dll,

mlfHuatu_test       为主程序执行函数。

将三个函数拷贝到button响应代码中,进行修改:

void CCeshiDlg::OnButton1()

{

dlltestInitialize();

mlfHuatu_test();

dlltestTerminate();

}

编译、执行程序,点击结果如图3:

可以看出,相比VC编写dll文件,利用MATLAB

编译器生成dll文件,以及在VC中调用该dll文件要方便和简单的多。利用编译器还可以根据需要生成C\C++源文件,可执行文件等。

MATLAB6.5的编译器为3.0版本,MATLAB7.0的编译器为4.0版本,4.0版本的编译器对原编译器进行了很多改进,3.0很多方法都不再

使用,上述方法如果在7.0版本上使用会出现错误。

利用mcc命令,通过不同的参数设置可以生成不同的文件,例如:mcc -B sgl myfun

将myfun.m文件生成对应的c文件和使用c图形库的可执行程序.

mcc -B sglcpp myfun

将myfun.m文件生成相应的c++文件和使用c++图形库的可执行程序.

mcc的参数实际上有很多,例如:

mcc -t -W main -L C -T link:exe -h libmmfile.mlib myfun

该命令是将myfun.m生成可执行c程序

为了简化选项设置,编译器提供了宏选项,实际上上述命令利用一个参数就可以了:

mcc -m myfun

该命令和上述命令是等价的,也是用来生成可执行c程序。关于mcc命令详细参数设置可以参考MATLAB帮助文档。

大家在使用VC调用MATLAB中遇到什么问题,可以发电子邮件到c_dinco@sina.com,把遇到的问题说清楚,正在写书,同时有什么好的建议,也欢迎发邮件来。

关于程序运行的说明:

1、根据实际情况修改VC中头文件和库文件的路径;

2、如果自己编写的程序图形不能显示菜单栏和工具栏,拷贝文件夹bin到当前目录下

vc编译 matlab,精通VC与MATLAB联合编程——编译器的使用相关推荐

  1. 视频教程-三十八课时零基础matlab精通优化算法-Matlab

    三十八课时零基础matlab精通优化算法 图像和算法等领域有多年研究和项目经验:指导发表科技核心期刊经验丰富:多次指导数学建模爱好者参赛. 宋星星 ¥100.00 立即订阅 扫码下载「CSDN程序员学 ...

  2. vc与matlab联合,浅析VC与Matlab联合编程(二) - VC知识库文章

    浅析VC与Matlab联合编程(二) 作者:邓科 下载源代码 在"浅析VC与Matlab联合编程 (一)"中简单介绍了VC与matcom的接口编程,实现了VC调用matcom的一个 ...

  3. matlab与vc混合编程指导书.doc,vc与matlab混合编程—基于com.doc

    vc与matlab混合编程-基于com.doc VC与MATLAB混合编程基于COM2010年03月21日星期日1118注意旨在提供一份VC调用MATLAB的快速试验参考和一些实际经验,不保证所有内容 ...

  4. matlab mex使用vc,matlab和VC++混合编程(mex方法)【转帖】

    第一节.用c编写mex程序[开篇] 用C编写mex程序 大家都知道,matlab是一种解释型的编程环境,也就是说,跟以前的basic一样,是读 一句执行一句的.这样做可以很方便的实现编程过程中的交互, ...

  5. MATLAB与VC混合编程(1)

    在本节中先介绍matcom,使得VC能调用Matlab 的M文件,从而实现混合编程. Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具.相比Matlab自带的编译 ...

  6. Win32编程之基于MATLAB与VC交互的多项式回归

    运行环境 Matlab R2018b x64 or x32 Visual Studio 2017 企业版 程序预览 文末有完整程序代码下载地址,有任何问题欢迎留言,谢谢点赞哟! 程序功能描述 矩阵运算 ...

  7. 螺杆泵matlab,基于Matlab与VC++混合编程的螺杆泵转子型线设计

    2011年第 3期 (总 227期 ) · 1 · 收稿日期: 2010 - 12 - 23 基金项目:国家高技术研究发展计划资助项目 (2007AA05Z208) 设计研究 文章编号: 100622 ...

  8. 基于MATLAB与VC混合编程的数字均衡器设计

    1.概述 随着数字化技术的快速.深入发展,人们对数字化电子产品所产生的图像.图形以及声音等质量的要求越来越高.在实时数字处理过程中,与D/A和A/D转换相关的模拟信号重构过程是决定数字系统输出质量的关 ...

  9. 总结:m文件转化为c/c++语言文件,VC编译

    fork (撒哈拉沙漠的沙)                于 Thu Dec  4 00:56:56 2003 说道: 发信人: fork (撒哈拉沙漠的沙), 信区: Matlab 标  题: 总 ...

最新文章

  1. 关于长江的题目_长江流域综合治理练习题
  2. C++多小球非对心弹性碰撞(HGE引擎)
  3. CentOS 6.5 伪分布安装
  4. 清华,北大坐实亚洲大学Top2,泰晤士2020亚洲大学榜
  5. Linux驱动开发 -- 打开dev_dbg()
  6. 3.26 Tensorflow 实验记录
  7. oracle merge into where,Oracle merge into语法简介
  8. 自由手写体字帖pdf_沐瑶随心手写体:随心是源于自由的快乐 免费商用手写字体...
  9. 赛思永盛120G固体硬盘拆解,YS9082HC主控方案,布局很像公版2258XT和2259XT
  10. sqlserver用sql语句备份数据库
  11. 微信小程序广告接入,小程序加广告
  12. 三季度国内光伏市场需求仍将强劲
  13. PyCharm2017破解步骤
  14. 警告: Failed to register object [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Qia
  15. 苹果6用U盘越狱_iOS 13 Checkra1n Win 越狱新方法,超级简单
  16. opencv mat裁剪
  17. int型的取值范围是?
  18. hp服务器怎么安装xp系统,windowsxp系统安装惠普打印机软件的方法
  19. Kubernetes HPA 动态弹性扩缩容
  20. 计算机组装前工具的准备,计算机组装 必备工具

热门文章

  1. Civil 3D 二次开发 新建CLR项目出现错误C2143
  2. Linux集群和自动化维1.3 如何根据服务器应用选购服务器
  3. 集群节点基于Hadoop集群的HBase集群的配置【2】
  4. 类里面没有参缺省构造函数 的带来的问题
  5. XP系统桌面图标透明问题的解决办法
  6. 快速通道30秒申请QQ!
  7. IT經理出招 電腦耗電減少
  8. 判定是否过拟合、欠拟合的一种方式
  9. java: 无法将类 com.duo_tai.Cow中的构造器 Cow应用到给定类型;
  10. 【刷题】BZOJ 1023 [SHOI2008]cactus仙人掌图