matlab dll没有头文件,matlab调用dll没有头文件怎么办
2018-12-08 回答
基于dll形式vc调用matlab函数方法
如果在一matlab中或vc中写好了函数的话,想在对方的环境中使用,直接将对方语言的函数编译成dll是一个很方便的方法,不需要重写了。今天把基于dll形式vc调用matlab函数的主要过程写下,在后续将写一下matlab调用vc函数的方法。
1,matlab中编译dll
在matlab中写好函数,保存在mttestfun.m中,使用mcc -w cpplib:mtlibtestfun -t link:lib mttestfun.m生成dll,用这个命令生成的是c++形式的,即matlab数据类型可以用类;否则用其他的命令生成的c形式的,不能用类。并生成了相应的其他mtlibtestfun.h,mtlibtestfun.lib和mtlibtestfun.dll在内的一些文件
2,vc中引用matlab环境
需要引用的.h文件路径为matlab安装目录的extern\include,需要引用的.lib文件路径为matlab安装目录的extern\lib\win32\microsoft;引入附加库mclmcrrt.lib
3,vc中调用matlab函数
将刚才matlab编译生成的文件全拷到当前vc工程下,只将mtlibtestfun.h文件加入到当前工程,并在需要调用的文件中包含;引入附加库mtlibtestfun.lib。在vc初始化函数里用下面函数进行初始化
mclinitializeapplication(null,0);
mtlibtestfuninitialize();
在结束时用下面函数释放
mtlibtestfunterminate();
mclterminateapplication();
下面在需要的地方调用,假设是下面的形式
mtlibtestfun(int nargout, mwarray& y, const mwarray& i, const mwarray& th);
nargout是返回参数个数,这里是1,后面y反演向量则是传出参数,i和th则是传入参数辐射值和切高。
c++数据传入matlab函数时需要将其转化成mwarray类型
double* pi = new double[row*column];
pl = ...
mwarray mwi(row, column, mxdouble_class);
mwi.setdata(pi, row*column);
返回后还需要将mwarray转回c++类型数据
double* py = new double[yrow*ycolumn];
mwy.getdata(py, yrow*ycolumn);
当然,对于一维数组数据来说,这样调用是没有问题的,但是对于二维矩阵数据来说,上面的调用会发生数据传入和传出错误。因为c++与matlab数组存储顺序不一样,matlab是列优先与c++中的行优先不同。这个数据的转换也将在后续给出一些解决办法。
matlab dll没有头文件,matlab调用dll没有头文件怎么办相关推荐
- Python编程语言学习:在根目录的py文件内调用某叶目录文件内的包/库或者函数(常用在GUI编程)之详细攻略
Python编程语言学习:在根目录的py文件内调用某叶目录文件内的包/库或者函数(常用在GUI编程)之详细攻略 目录
- cmd执行bat结果不回显_cmd - 如何在bat文件中调用另一个bat文件
情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调用b.bat,如下. a.bat @echo off echo I am a.ba ...
- cmd 如何在bat文件中调用另一个bat文件
微信搜索:"二十同学" 公众号,欢迎关注一条不一样的成长之路 情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调 ...
- python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题
python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题 1.在一个py文件中调用另一个py文件中的变量 新建一个py文件,记为t1.py # t1.py m = 2 n = 1 a ...
- C#.NET如何将cs文件编译成dll文件 exe文件 如何调用dll文件
比如我要把TestDLL.cs文件编译成dll文件,则在命令提示符下,输入下面的命令,生成的文件为TestDLL.dll csc /target:library TestDLL.cs 注意前提是你安装 ...
- java jni dll路径_Java中Jni调用DLL文件试验
Java中Jni调用DLL文件试验 下面是小编整理的Java中Jni调用DLL文件试验内容,希望可以为您带来帮助!更多内容请关注应届毕业生考试网! 所有文件均在E:\路径下. 安装jdk1.6.0_0 ...
- python调用dll函数_从Python调用DLL函数
我想从Python调用DLL中的函数.但我有个错误:"Attribute Error function not found" 这是我的代码:import os import cty ...
- 如何在一个.c文件里调用另一个.c文件里的变量
假设被调用的C文件为func.c,则被调用的全局变量需被定义在文件开始处,即与头文件.宏定义. 函数声明在一起 #include <stdio.h> #define KEY abcd in ...
- 模板文件如何调用php函数,模板文件调用方法与路径
:-: **模板调用方法** * * * * * 如何通过微擎进入商城模块: 1,路由规则: 当传入的URL请求中包含一个名为 c.a.do(可选) 的 GET 参数,它即被视为一个路由,例如: ht ...
- python解压7z文件_Python调用7zip命令实现文件批量解压
Python调用7zip命令实现文件批量解压 1.输入压缩文件所在的路径 2.可以在代码中修改解压到的文件路径和所需要解压的类型,列入,解压文件夹下面所有的mp4格式的文件 3.cmd 指的就是Pyt ...
最新文章
- 如何解决工业缺陷检测小样本问题?
- 他让张一鸣登门请教,培养出戴文渊李沐陈天奇,创建了传说中的上海交大ACM班...
- JDBC连接mysql、创建表、操作数据、PreparedStatement防注入、sql语句返回值类型知识汇总
- Boost:prefer的使用测试程序
- 【Linux】一步一步学Linux——traceroute命令(167)
- 邓公数据结构C++语言版学习笔记——二叉树
- 使用 stm32实现锂电充电_千次循环使用,ZMI可充电锂电池套装,够用一辈子吗?...
- 紫色精品Bootstrap4 后台UI模板
- 基于JAVA+Swing+MYSQL的超市管理系统
- oracle vm win10,win10系统oraclevm卸载不了错误2503的解决方法
- [转]php连接postgresql
- mysql语句解析_MYSQL中SQL执行分析
- python 员工考勤_python-01实现考勤表添加与删除
- unity 实现PPT动画效果切换图片
- AngularJS页面【uib-dropdown】控件在模态窗口(弹出窗)中无法使用问题
- MongoDB 极简入门实践
- 重学java——倒叙遍历
- Mysql 错误 1273 Unknown collation
- IoC容器Autofac
- win10计算机管理器在哪,Win10设备管理器在哪里?Win10系统设备管理器打开方法图解...
热门文章
- css动画与js动画的区别
- 采用我国国产处理器的超级计算机是,“中国芯”超级电脑合肥诞生 首次采用国产CPU芯片...
- matlab二维谐振子,基于有限差分法求解的二维谐振子的MATLAB程序如下。哪位大神能帮我做个注明啊,完全看不懂啊,,急...
- linux 搜狗输入法包名,搜狗输入法(com.sohu.inputmethod.sogou) - 10.27 - 应用 - 酷安
- python实现knn算法鸢尾花_Python学习之knn实现鸢尾花分类
- 【Python】pyCryptodome模块实现AES加密、解密
- react-json渲染
- Linux系统性能查询命令
- [转]Angular2 使用管道Pipe以及自定义管道格式数据
- [转]Nginx的负载均衡方式