vc编译 matlab,精通VC与MATLAB联合编程——编译器的使用
图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联合编程——编译器的使用相关推荐
- 视频教程-三十八课时零基础matlab精通优化算法-Matlab
三十八课时零基础matlab精通优化算法 图像和算法等领域有多年研究和项目经验:指导发表科技核心期刊经验丰富:多次指导数学建模爱好者参赛. 宋星星 ¥100.00 立即订阅 扫码下载「CSDN程序员学 ...
- vc与matlab联合,浅析VC与Matlab联合编程(二) - VC知识库文章
浅析VC与Matlab联合编程(二) 作者:邓科 下载源代码 在"浅析VC与Matlab联合编程 (一)"中简单介绍了VC与matcom的接口编程,实现了VC调用matcom的一个 ...
- matlab与vc混合编程指导书.doc,vc与matlab混合编程—基于com.doc
vc与matlab混合编程-基于com.doc VC与MATLAB混合编程基于COM2010年03月21日星期日1118注意旨在提供一份VC调用MATLAB的快速试验参考和一些实际经验,不保证所有内容 ...
- matlab mex使用vc,matlab和VC++混合编程(mex方法)【转帖】
第一节.用c编写mex程序[开篇] 用C编写mex程序 大家都知道,matlab是一种解释型的编程环境,也就是说,跟以前的basic一样,是读 一句执行一句的.这样做可以很方便的实现编程过程中的交互, ...
- MATLAB与VC混合编程(1)
在本节中先介绍matcom,使得VC能调用Matlab 的M文件,从而实现混合编程. Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具.相比Matlab自带的编译 ...
- Win32编程之基于MATLAB与VC交互的多项式回归
运行环境 Matlab R2018b x64 or x32 Visual Studio 2017 企业版 程序预览 文末有完整程序代码下载地址,有任何问题欢迎留言,谢谢点赞哟! 程序功能描述 矩阵运算 ...
- 螺杆泵matlab,基于Matlab与VC++混合编程的螺杆泵转子型线设计
2011年第 3期 (总 227期 ) · 1 · 收稿日期: 2010 - 12 - 23 基金项目:国家高技术研究发展计划资助项目 (2007AA05Z208) 设计研究 文章编号: 100622 ...
- 基于MATLAB与VC混合编程的数字均衡器设计
1.概述 随着数字化技术的快速.深入发展,人们对数字化电子产品所产生的图像.图形以及声音等质量的要求越来越高.在实时数字处理过程中,与D/A和A/D转换相关的模拟信号重构过程是决定数字系统输出质量的关 ...
- 总结:m文件转化为c/c++语言文件,VC编译
fork (撒哈拉沙漠的沙) 于 Thu Dec 4 00:56:56 2003 说道: 发信人: fork (撒哈拉沙漠的沙), 信区: Matlab 标 题: 总 ...
最新文章
- 关于长江的题目_长江流域综合治理练习题
- C++多小球非对心弹性碰撞(HGE引擎)
- CentOS 6.5 伪分布安装
- 清华,北大坐实亚洲大学Top2,泰晤士2020亚洲大学榜
- Linux驱动开发 -- 打开dev_dbg()
- 3.26 Tensorflow 实验记录
- oracle merge into where,Oracle merge into语法简介
- 自由手写体字帖pdf_沐瑶随心手写体:随心是源于自由的快乐 免费商用手写字体...
- 赛思永盛120G固体硬盘拆解,YS9082HC主控方案,布局很像公版2258XT和2259XT
- sqlserver用sql语句备份数据库
- 微信小程序广告接入,小程序加广告
- 三季度国内光伏市场需求仍将强劲
- PyCharm2017破解步骤
- 警告: Failed to register object [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Qia
- 苹果6用U盘越狱_iOS 13 Checkra1n Win 越狱新方法,超级简单
- opencv mat裁剪
- int型的取值范围是?
- hp服务器怎么安装xp系统,windowsxp系统安装惠普打印机软件的方法
- Kubernetes HPA 动态弹性扩缩容
- 计算机组装前工具的准备,计算机组装 必备工具
热门文章
- Civil 3D 二次开发 新建CLR项目出现错误C2143
- Linux集群和自动化维1.3 如何根据服务器应用选购服务器
- 集群节点基于Hadoop集群的HBase集群的配置【2】
- 类里面没有参缺省构造函数 的带来的问题
- XP系统桌面图标透明问题的解决办法
- 快速通道30秒申请QQ!
- IT經理出招 電腦耗電減少
- 判定是否过拟合、欠拟合的一种方式
- java: 无法将类 com.duo_tai.Cow中的构造器 Cow应用到给定类型;
- 【刷题】BZOJ 1023 [SHOI2008]cactus仙人掌图