php调用dll函数,[转载]matlab调用DLL中的函数
首先,这种调用在 Matlab 的帮助文档中有说明。它的英文名称为:
MATLAB Interface to Generic
DLLs
从这个帮助文档,我们不难看出,整个过程为:加载
DLL ,调用相关函数,和卸载 DLL 。
看起来简单,但是在实际操作中遇到了如下几个问题:
1,
loadlibrary 出错。错误报告为:
Error using ==>
loadlibrary Failed to preprocess input file. Output from
preprocessor is: 'c:program' is not recognized as an internal or
external command, operable or batch file
错误的原因很简单,就是 loadlibrary 的问题。由于你的 matlab 是安装在 C:program
file 目录下,中间有一个空格。所以出错了。这在
Matlab R14sp2
及其以前的版本都有这个问题。
解决办法:
-
重新安装 matlab ,换一个目录,中间不带空格。
modify
line 168 of loadlibrary.m in
toolboxmatlabgeneral from:
cc=[lcc ' -noregistrylookup'
ccinclude ' -E "' header '"'];
to:
cc=['"' lcc '"
-noregistrylookup' ccinclude ' -E "' header '"']; If your header
has #include statements, then it might also be necessary to modify
the following lines:
line 106 from:
ccinclude = [ccinclude ' -I '
fullfile(matlabroot, 'extern','include')];
to:
ccinclude = [ccinclude ' -I "'
fullfile(matlabroot,'extern','¬include"')];
line 166 from:
ccinclude = [ccinclude ' -I '
fullfile(matlabroot,'sys',...
'lcc','include')];
to:
ccinclude = [ccinclude ' -I "'
fullfile(matlabroot,'sys',...
'lcc','include"')];
The line numbers might be
different in previous releases, but the changes are the
same
注意:千万注意其中的空格。否则, matlab 告诉出错,可不要挠头。
2,
loadlibrary 成功了。但是查询 libfunctions 或卸载 unloadlibrary 不成功。
怪了。我仔细看了看 loadlibrary 中的头文件。由于我写 DLL 的时候提供的头文件是给 VC 用的,所以其中有些是 VC 环境中自定义的东西。我把这个头文件改了改,把
DLL 相关的部分给注释掉,如:
#ifdef
DATATRANSFER_API
//#define DATATRANSFER_API
extern "C" __declspec(dllexport)
#else
#define DATATRANSFER_API extern
"C" __declspec(dllimport)
#endif
//DATATRANSFER_API
int
GYZPrepare(void);
如上面,把这个 DLL 相关的注释掉,就剩下一个简单的 .h 文件。呵呵,这样就通过了。
3,
参数传递。
由于我的程序很简单,所以就不管这些啦。
php调用dll函数,[转载]matlab调用DLL中的函数相关推荐
- matlab调用c语言驱动函数,[转载]Matlab调用C语言函数
3.3000 要得出以上的结果,那应该怎样做呢? 解决方法之一是要通过使用MEX文件,MEX文件使得调用C函数和调用Matlab的内置函数一样方便.MEX文件是由原C代码加上MEX文件专用的接口函数后 ...
- matlab mex 矩阵,如何从mex函数访问matlab结构字段中的矩阵?
如何从mex函数访问matlab结构字段中的矩阵? 我试图弄清楚如何从mex函数访问存储在matlab结构中的字段中的矩阵. 那真是漫长的缠绕...让我解释一下: 我有一个定义如下的matlab结构: ...
- matlab调用c函数语言,MATLAB调用C/C++函数的方法
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 通过MATLAB将C/C++函数编译成MEX函数,在MATLAB中就可以调用了. 1,首先装编译器 Matlab里键入m ...
- matlab调用maple数据画图,Matlab调用Maple
Matlab调用Maple 2011-05-10 09:17 如何在matlab中调用maple (不用安装maple软件就可调用) 方法1: maple('maplestatement') 其中ma ...
- linux中probe函数的pm管理,linux中 probe函数的何时调用的
所以的驱动教程上都说:只有设备和驱动的名字匹配,BUS就会调用驱动的probe函数,但是有时我们要看看probe函数里面到底做了什么,还有传递给probe函数的参数我们就不知道在哪定义(反正不是我们在 ...
- 浅谈matlab数学建模中@符号-----函数句柄
很多刚开始学数学建模的小伙伴第一次在matlab程序中遇到"@"这个符号都不知道是什么意思, 如: f = @myfunction: 或者 fun = @sin; 其实这种用法叫创 ...
- 小波基函数构造matlab,五种常见小波基函数及其matlab实现全解.docx
五种常见小波基函数及其matlab实现全解 与标准的傅里叶变换相比,小波分析中使用到的小波函数具有不唯一性,即小波函数 具有多样性.小波分析在工程应用中,一个十分重要的问题就是最优小波基的选择问题,因 ...
- matlab计算空间卷积,如何在MATLAB和WolframAlpha中计算函数与自身的卷积?
我对Mathematica了解不多,所以我只能帮助你(部分)了解Matlab部分. 使用Matlab进行卷积转换函数意味着您可以用数字方式进行卷积.你对积分定义的意思是你想象征性地做它.为此,您需要M ...
- matlab ceiling,ceiling_excel中ceiling函数的用法?
百度百科--ceiling excel中"ceiling函数"怎么使用? CEILING函数是将参数Number向上舍入(正向无穷大的方向)为最接近的 significance 的 ...
最新文章
- 表的插入、更新、删除、合并操作_8_手工插入数据
- phpstorm知识点
- c语言学生信息管理系统框架,vue实现学生信息管理系统
- 【牛客 - 551G】CSL的训练计划(二分 + 拓扑排序 + 优化卡常)
- 智慧书-永恒的处世经典格言:121-160
- matlab如何z变换,MATLAB第3章Z变换详解.ppt
- 有关windows10修改C盘用户中文名文件夹相关问题的具体解决方案
- miniGui交叉编译
- python聊天智能回复_【微信】设置自动回复消息和智能聊天
- 一个优秀的平面设计作品需要满足那些特点
- matlab 圆角,rectangle函数MATLAB matlab中rectangle画圆角矩形
- 计算机毕业设计(附源码)python校园社团管理系统
- 关于wangEditor 5的使用以及使用的一些错误
- 最全的软件测试面试题(含答案)
- 计划任务(啊啊啊啊啊)
- 《第一行代码》第三版之通知、多媒体(十)
- 国产运动耳机品牌排行榜、2022运动耳机款式盘点
- 从头再来博客_免费课程:从头开始构建博客吗?
- Lua04 实例列举 ESB2CP的报文转换流程
- L2-009 抢红包 (25 分)(C语言)(排序)