首先,这种调用在 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中的函数相关推荐

  1. matlab调用c语言驱动函数,[转载]Matlab调用C语言函数

    3.3000 要得出以上的结果,那应该怎样做呢? 解决方法之一是要通过使用MEX文件,MEX文件使得调用C函数和调用Matlab的内置函数一样方便.MEX文件是由原C代码加上MEX文件专用的接口函数后 ...

  2. matlab mex 矩阵,如何从mex函数访问matlab结构字段中的矩阵?

    如何从mex函数访问matlab结构字段中的矩阵? 我试图弄清楚如何从mex函数访问存储在matlab结构中的字段中的矩阵. 那真是漫长的缠绕...让我解释一下: 我有一个定义如下的matlab结构: ...

  3. matlab调用c函数语言,MATLAB调用C/C++函数的方法

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 通过MATLAB将C/C++函数编译成MEX函数,在MATLAB中就可以调用了. 1,首先装编译器 Matlab里键入m ...

  4. matlab调用maple数据画图,Matlab调用Maple

    Matlab调用Maple 2011-05-10 09:17 如何在matlab中调用maple (不用安装maple软件就可调用) 方法1: maple('maplestatement') 其中ma ...

  5. linux中probe函数的pm管理,linux中 probe函数的何时调用的

    所以的驱动教程上都说:只有设备和驱动的名字匹配,BUS就会调用驱动的probe函数,但是有时我们要看看probe函数里面到底做了什么,还有传递给probe函数的参数我们就不知道在哪定义(反正不是我们在 ...

  6. 浅谈matlab数学建模中@符号-----函数句柄

    很多刚开始学数学建模的小伙伴第一次在matlab程序中遇到"@"这个符号都不知道是什么意思, 如: f = @myfunction: 或者 fun = @sin; 其实这种用法叫创 ...

  7. 小波基函数构造matlab,五种常见小波基函数及其matlab实现全解.docx

    五种常见小波基函数及其matlab实现全解 与标准的傅里叶变换相比,小波分析中使用到的小波函数具有不唯一性,即小波函数 具有多样性.小波分析在工程应用中,一个十分重要的问题就是最优小波基的选择问题,因 ...

  8. matlab计算空间卷积,如何在MATLAB和WolframAlpha中计算函数与自身的卷积?

    我对Mathematica了解不多,所以我只能帮助你(部分)了解Matlab部分. 使用Matlab进行卷积转换函数意味着您可以用数字方式进行卷积.你对积分定义的意思是你想象征性地做它.为此,您需要M ...

  9. matlab ceiling,ceiling_excel中ceiling函数的用法?

    百度百科--ceiling excel中"ceiling函数"怎么使用? CEILING函数是将参数Number向上舍入(正向无穷大的方向)为最接近的 significance 的 ...

最新文章

  1. 表的插入、更新、删除、合并操作_8_手工插入数据
  2. phpstorm知识点
  3. c语言学生信息管理系统框架,vue实现学生信息管理系统
  4. 【牛客 - 551G】CSL的训练计划(二分 + 拓扑排序 + 优化卡常)
  5. 智慧书-永恒的处世经典格言:121-160
  6. matlab如何z变换,MATLAB第3章Z变换详解.ppt
  7. 有关windows10修改C盘用户中文名文件夹相关问题的具体解决方案
  8. miniGui交叉编译
  9. python聊天智能回复_【微信】设置自动回复消息和智能聊天
  10. 一个优秀的平面设计作品需要满足那些特点
  11. matlab 圆角,rectangle函数MATLAB matlab中rectangle画圆角矩形
  12. 计算机毕业设计(附源码)python校园社团管理系统
  13. 关于wangEditor 5的使用以及使用的一些错误
  14. 最全的软件测试面试题(含答案)
  15. 计划任务(啊啊啊啊啊)
  16. 《第一行代码》第三版之通知、多媒体(十)
  17. 国产运动耳机品牌排行榜、2022运动耳机款式盘点
  18. 从头再来博客_免费课程:从头开始构建博客吗?
  19. Lua04 实例列举 ESB2CP的报文转换流程
  20. L2-009 抢红包 (25 分)(C语言)(排序)

热门文章

  1. 第 十 七 天 : 安 装 php 遇 到 的 错 误 汇 总
  2. 排序算法学习——冒泡排序
  3. 基于管道模式的容器设计
  4. 我的Oracle 9i学习日志(20)-- profile
  5. centos下fail2ban安装与配置详解
  6. 构建基于Ceph的文件共享服务
  7. 网络犯罪分子为何针对中小企业?—Vecloud微云
  8. 十种机制保护三大网络基础协议(BGP、NTP和FTP)—Vecloud微云
  9. C# Graphic 绘制圆、三角形、椭圆、图片
  10. .net堆栈与托管堆的区别