一、DLL文件
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
二、创建DLL项目
1.创建win32应用控制台程序, 点击DLL选项;
2.新建.h 和.cpp 文件;
3.生成解决方案,编译成功后在debug文件夹会生成.dll、.ilk和.pdb文件;
4.项目源文件下添加.def文件。添加方法:添加—新建项—代码—模块定义文件。
5.重新生成解决方案,编译成功后可以在debug文件夹下会增加.exp和.lib文件;
三、调用DLL项目
新建一个win32控制台的空项目,取名usemydll,然后引用dll步骤如下:
1.项目->属性->配置属性->VC++ 目录-> 在“包含目录”里添加头文件.h所在的目录
2.项目->属性->配置属性->VC++ 目录-> 在“库目录”里添加头文件.lib所在的目录
3.项目->属性->配置属性->链接器->输入-> 在“附加依赖项”里添加“*.lib”
4.将原debug文件中的.dll复制到当前项目的debug文件夹中
5.新建main.cpp文件,调用dll。
四、MATLAB调用dll
1、新建一个c++ DLL工程CtoMat
2、头文件pst.h
#pragma once
#ifndef PST_H
#define PST_H
#ifdef __cplusplus
extern "C"
{
#endif
__declspec(dllexport) double add(double x, double y);
#ifdef __cplusplus
}
#endif
#endif
3、cpp文件pst.cpp,选择x64平台生成CtoMat.dll
#include "pst.h"
double add(double x, double y)
{
return (x + y);
}
4、MATLAB命令行窗口,输入
>>mex -setup
要选择不同的语言,请从以下选项中选择一种命令:
mex -setup C++ (选择)
mex -setup FORTRAN
MEX 配置为使用 'Microsoft Visual C++ 2013 Professional' 以进行 C++ 语言编译。
//MATLAB中加载DLL
>> loadlibrary('CtoMat','pst.h')
//查看模块中的函数
>> libfunctions CtoMat -full
类 lib.CtoMat 的方法:
double add(double, double)
//MATLAB中调用函数
>> calllib('CtoMat', 'add', 5, 8)
ans =
13
>>