VS2013创建并使用DLL

一、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
>> 

你可能感兴趣的:(C++笔记)