Matlab函数制作Dll后C二次开发封装DLL(VS2013)

前言:Matlab算法丰富,直接可以拿来使用,但是又不熟悉m语言或者要求效率高的代码,内部函数封装Dll后C二次处理封装dll

一、Matlab生成DLL

备注:

  配置环境变量(很重要,否则编译会出现找不到libmx.dll文件”)

     D:\Install\MatLab\bin\win64;(路径参考,实际安装位置,默认软件自动设置环境变量)

  在matlab命令行输入mex -setup,按提示选择合适的选项

  在matlab命令行输入mbuild -setup,按提示选择合适的选项

  以上配置只需进行一次就可以了,不必每写一个程序都重复一遍。

1、命令行输入deploytool可弹出对话框,选择“Library Complier

Matlab函数制作Dll后C二次开发封装DLL(VS2013)

2、“TYPE”选择制作的库(C++ Shared Library),“EXPORTED FUNCTIONS”中选择需要转化成动态链接库的Matlab.m文件,添加完成后在Library Name编辑框中输入你想给Dll文件命名的名称。然后点击下面Package即可完成转化。

Matlab函数制作Dll后C二次开发封装DLL(VS2013)

注:生成的dll拷贝到另一台电脑需要对应版本的MATLAB Runtime组件(MCR)。

 二、VS2013 C二次封装DLL

1、点击“新建项目”创建“Win32控制台应用程序”

2、选择DLL,空项目

3、点击源文件,创建一个main.c文件

4、点击工程属性页,“配置管理器”可创建64位平台DLL(根据需要)

Matlab函数制作Dll后C二次开发封装DLL(VS2013)

5、配置VS2013属性表Matlab库依赖,调用matlab引擎) 

项目属性 - 配置属性 - VC++目录 -

        包含目录:D:\Install\MatLab\extern\include;(路径参考)

        库目录:D:\Install\MatLab\extern\lib\win64\microsoft;(路径参考)

项目属性 - 配置属性 -链接器 - 输入 - 附加依赖项:libmx.lib;libmat.lib;libeng.lib;mclmcr.lib;mclmcrrt.lib;libmex.lib

或者也可通过#pragma comment( lib, "mclmcrrt.lib" )指令在C文件中附加依赖项。

项目->属性->配置属性->C/C++-代码生成->运行库->多线程 (/MT)

  说明:这种方法应该对于一些程序来说最实用,仅需一个程序,放到哪都可以运行。

  /MT意思就是静态编译VC运行库,静态了之后就不会再依赖MSVCR100.DLL或者MSVCR80.DLL(使用VS2013)了。

Matlab函数制作Dll后C二次开发封装DLL(VS2013)

上一篇:vue-cli2/3打包增加版本号,解决缓存问题


下一篇:剑指 Offer 61. 扑克牌中的顺子