VS C++ 和 MCR 调用MATLAB DLL
#最开始尝试了MFC+matlab DLL的方法 C++还没玩通 最后还是放弃MFC了 看的经验没有给出MFC的完整程序
运行环境
MCRuntime 9.8 (MATLABR2020A)
VS2017
注:这里不是调用matlab引擎的方法 在客户机不需要安装MATLAB 只要安装配置MCR即可
MATLAB 代码(以myfit为例,程序来自亲测可行的文章)
function c = myfit(x, y, n)c=polyfit(x,y,n);
end
MATLAB生成DLL
装了VS2017 自己会识别出编译器
命令格式:mcc -B cpplib:myfit myfit.m
需要的文件 myfit.lib myfit.h myfit.dll
VS 环境设置(重要)
#这里我复制(那篇亲测可行文章的)
将前面生成的myfit.dll、myfit.h和myfit.lib三个文件拷贝到新建的C++工程目录中,并将myfit.h加入工程,并设置工程属性。
(如果使用MCR将这些改成MCR对应文件的目录即可,都是有的)
项目属性——VC++目录——包含目录:
项目属性——VC++目录——库目录:
项目属性——链接器——输入:
mclmcrrt.lib
myfit.lib(这是自己生成的)
C++代码(和matlab代码来自一个文章,这里需要读取TXT,但没有这个文件也能运行)
#include<iostream>
#include<fstream>
#include"myfit.h"
#define NUM 161
using namespace std;int main()
{if (!myfitInitialize())return -1;ifstream infile("data.txt");double x[NUM], y[NUM];for (int i = 0; i < NUM&&infile; i++){infile >> x[i] >> y[i];}infile.close();mwArray mwx(NUM, 1, mxDOUBLE_CLASS);mwArray mwy(NUM, 1, mxDOUBLE_CLASS);mwArray mwc;mwArray mwn(1, 1, mxINT32_CLASS);mwx.SetData(x, NUM);mwy.SetData(y, NUM);int n;cout << "请输入多项式拟合的阶数:";cin >> n;mwn = n;cin.get();myfit(1, mwc, mwx, mwy,mwn);double c[4];mwc.GetData(c, 4);cout << "多项式系数为:" << mwc << endl;cin.get();myfitTerminate();return 0;
}
运行结果
这里红线是MATLAB报的错 引用成功
再提一次重点文章,帮助太大了
C++调用DLL 可用,记得设置64位
MFC 还是太难 这个文章基本可以实现通用了
VS C++ 和 MCR 调用MATLAB DLL相关推荐
- c怎么调用matlab dll,matlab和c++调用DLL方法(最新整理)
<matlab和c++调用DLL方法(最新整理)>由会员分享,可在线阅读,更多相关<matlab和c++调用DLL方法(最新整理)(6页珍藏版)>请在人人文库网上搜索. 1.M ...
- 调用matlab dll报错,c#调用MATLAB的dll时出错
MATLAB是2014a,VS是2013的. 在C#中调用matlab生成的dll文件时,ceshi.Class1 yaoyi = new Class1(); 对类进行实例时,抛出异常.异常为: 未 ...
- cvi调用matlab dll,cvi通过artix调用matlab
[实例简介] cvi通过artix调用matlab,官方例程改的,不过官方例程一般人运行不起来,因为库不匹配,这个是matlab2015b32位和cvi2017的 [实例截图] [核心代码] f403 ...
- C++调用matlab dll报错:Invalid input:Null runtime instance
一.报错截图如下: 二.操作过程如下: 1.先是使用vs2015打开了vs2017的C++工程,编译运行后没有异常出现: 2.后再用vs2017打开工程,执行调用matlab的函数时报如上错误. 三. ...
- C++调用matlab dll
1. 编写matlab函数 2. 命令行输入 mex -setup 选择 mex -setup C++ 3. 命令行输入 mbuild -setup 选择 mex -setup C++ -clien ...
- matlab dll没有头文件,matlab调用dll没有头文件怎么办
2018-12-08 回答 基于dll形式vc调用matlab函数方法 如果在一matlab中或vc中写好了函数的话,想在对方的环境中使用,直接将对方语言的函数编译成dll是一个很方便的方法,不需要重 ...
- vs2008中调用matlab生成的dll
vs2008中调用matlab生成的dll matlab版本为:matlab7.11.0(R2010b) vs2008 1.在matlab中生成dll 在m文件中实现如下功能: 获得N个魔方矩阵的秩. ...
- opencv通过dll调用matlab函数,图片作为参数
[blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数 前文介绍了如何"csharp通过dll调用opencv函数,图片作为参数 ...
- Qt调用Matlab库C#库dll调用C++调用C#库CSharp库lib invoke matlab library .net donet netframework
Qt调用Matlab库C#库dll调用C++调用C#库CSharp库lib invoke matlab library .net donet netframework 该文章是一篇说明c++/Qt调用 ...
最新文章
- AI突破难题才能预见未来
- Inception SQL审核注解
- php权限二进制,PHP_二进制交叉权限微型php类分享,靓点:1、多对多交叉场景分配 - phpStudy...
- MongoRepository findById方法使用示例
- 史上最强福利,阿里云半价+Plesk免费2万台速抢!
- Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器)
- c++ 凸包 分治算法_三维凸包
- lintcode: 跳跃游戏 II
- GaiGai----1
- 苹果手机处理器_全球最强手机处理器诞生!苹果A14主频首超3GHz:性能秒杀华为/高通...
- AspectJ——预编译方式实现AOP
- 如何在 Mac 上查找和管理 Safari 下载?
- 明翰英国硕士常见词汇与固定搭配V1.2(持续更新)
- FP-growth算法,fpgrowth算法详解
- 基于RS的沈阳土地利用情况
- python词性标注_Python词性标注HMM+viterbi实现
- 怎样修改linux(虚拟机)系统开机密码
- 微服务[学成在线] day13:使用FFmpeg进行格式转换以及m3u8文件生成、文件分块上传接口实现
- 利用ajax从jsp中返回的字符串时出现回车符号解决办法
- 抖音商务团队三面java_腾讯抖音iOS岗位三面面经