版权所有,转载请注明出处:http://guangboo.org/2013/05/02/matlab-dll-file
Matlab的优势就是矩阵计算,大量的算法库等,对于非矩阵计算来说可能就没有多高的性能和优势。Matlab支持使用C语言和Fortan编写扩展,这样就可以弥补Matlab不擅长的部分。有些时候我们需要在Matlab中调用已有的dll,避免写C扩展。
比如需要在matlab中获取机器码,而这个机器码的获取方法是现成的,只是这个方法是使用C编写的,并已经编译成libhelper.dll文件里。那么我们就可以这些编译一个get_mac_id的函数,来调用该dll中的函数get_machine_code的方法。
需要有libhelper.h文件,该头文件要包含get_machine_code函数的声明,如:
int __stdcall get_machine_code(char *buf);
libhelper.h头文件是必须的,并且文件名也要和dll文件名一致。然后可以编写m文件get_id.m,如下:
function code = get_mac_id()
%GETID Summary of this function goes here
% Detailed explanation goes here
try
[notfound,warnings] = loadlibrary('libhelper.dll');
arg = '';
%arg = libpointer('stringPtr',buf);
[a, buf2] = calllib('libhelper', 'get_machine_code', arg);
unloadlibrary('libhelper');
catch
code = '';
return;
end
buf = unicode2native(buf2, '');
mac_buffer = repmat('0', 1, 64);
len = length(buf2);
for i=1:len
c = dec2hex(uint8(buf(i)));
if length(c) == 1
mac_buffer(i*2-1:i*2) = ['0' c];
else
mac_buffer(i*2-1:i*2) = c;
end
end
if length(mac_buffer) > 32
code = mac_buffer(1:32);
else
code = mac_buffer;
end
end
调用方法:
>>
>> get_mac_id()
ans =
3F5E5DB9083770DA154D15A55431229C
>>
分享到:
相关推荐
qt调用matlab动态链接库
MATLAB生成动态链接库+VS调用库文件
包含matlab代码和c++代码,C++生成dll,matlab调用dll。
本例子是Visual Studio2015调用Matlab2016生成的动态链接库的例子,实验运行通过,在运行前确保自己安装了Matlab运行时。
基于动态链接库调用方法的LabWindows与MATLAB混合编程.pdf
介绍在MATLAB环境下生成动态链接库,供其他开发环境调用。
用LabVIEW提供的调用库函数(Call Library Function, CLF)节点,可以在LabVIEW中实现DLL函数的调用。
上一个资源 C# 调用Matlab编译的动态链接库dll 其中用到的数据 其中路径可以自己在程序代码中修改,或者做成从路径手动打开的方式
MATLAB调用C语言写的动态链接库里函数的一个例子
VS2015调用Matlab2015b生成32位动态链接库,包括说明文档及VS2015工程和Matlab源码示例。
一个项目的一部分,运用了C# 调用Matlab生成的动态链接库dll实现电力信号的谐波分析,将信号和分析结果用mschart画图显示出来; 只有C#代码,matlab源码只是运用了加窗插值FFT,在此不提供,可自行编写; matlab生成...
上上一个资源关于 “C#调用Matlab动态链接库”的,我看评论说运行不了,可能是因为没装Matlab或者Matlab版本和操作系统位数和我编译的dll不匹配,因此我把Matlab原函数文件补充,可自行在Matlab下运用deploytool命令...
详细描述了MATLAB+VS混合编程的步骤
Matlab6.5 与 VC6 利用动态链接库实现混合编程,详细描述了Matlab与c++环境搭建,如何在matlab中生成.lib .dll 方法,如何在c++中调用matlab生成的文件
将Matlab中现成的数学函数编译为动态链接库,供VC调用,可以省去工程应用中要编写各种C++数学算法的烦恼。这个文档是我总结的几个案例,分别是VC6.0和VS2008下调用Matlab r2010a生成的dll的例子,包括矩阵求逆和数值...
是我的CSDN博客中文章“VC++调用Matlab编写的DLL(混合编程)”的配套实例。资源中的源程序实现了VC++中在VS2008中进行VC和matlab的混合编程,在vc程序中调用自己编写的matlab绘图DLL。请先仔细阅读我的CSDN博客中...
将Matlab的.m文件生成动态链接库,然后在VS的工程项目中调用动态链接库。可以完美实现VC调用Matlab函数。
由matlab的.m文件生成动态链接库,供其他开发环境调用,由于matlab在算法方面比较权威。
VS2010调用MATLAB2012的动态链接库,测试通过,有操作步骤和测试代码
可以在VC中调用Matlab的库函数进行编程并显示,得到EXE 文件。Matlab7中只剩下了最基本的结构定义,效率低下,使用不便。 以这种方式得到的程序在运行时需要相应的Matlab dll 支持。示例中的EXE 目录已经附上所有...