由MATLAB的.m文件生成动态链接库的方法说明
2012-03-19 13:04
316 查看
1.把MATLAB编译器(MATLAB Complier: mcc)集成到 VC6.0中
第一步:在安装MATLAB时,要安装MATLAB编译器(MATLAB Complier )。
第二步:在MATLAB命令提示符>>或者DOS命令框中键入命令:
mex –setup
进行编译环境选择:VC6.0。
第三步:在MATLAB命令提示符>>或者DOS命令框中键入命令:
mbuild –setup
进行编译环境选择:VC6.0。
第四步:在MATLAB命令提示符>>键入命令:
prefdir
显示用户 preference 目录位置。
第五步:在MATLAB命令提示符>>键入命令:
mccsavepath
然后将MATLAB的work目录中的mccpath文件拷贝到用户 preference 目录中。
保存Complier的路径信息。
第六步:如果使用的是Windows98,要在你的config.sys文件中加入一行:
shell=c:\command.com /e:32768 /p
第七步:在 VC6.0的Tools -> Customize -> Add-ins and Macro 选中MATLAB add-in for Visual Studio。将会出现MATLAB add-in for Visual Studio 工具栏。
同时MATLAB已在VC6.0的 Wizard 中新增了一项:MATLAB Project Wizard
2.MATLAB Project Wizard 的使用方法
第一步:在VC6.0中选取 File -> New -> MATLAB Project Wizard 建立一个新项目。
第二步:在 MATLAB Project Wizard 中,选择项目的应用类型:
共有五种类型可供选择:
l C-MEX DLL
l M-MEX DLL
l Windows Console EXE
l Share M-DLL
l Simulink C S-Function
选择 Share M-DLL 来建立 Windows 动态链接库。
生成的新项目信息
第三步:选择 .m 文件
选择要加入到动态链接库中的 .m 文件
加入的 .m 文件和由它生成的C文件
第四步:对 VC6.0 编译环境进行配置:头文件、库文件的路径、链接导入的静态库。
导入C:\MATLAB6p5\extern\lib\win32\microsoft\msvc60 中的静态库
第五步:编译、链接建立动态链接库DLL文件。
第六步:若要在项目中添加新的 .m 文件,可作用MATLAB add-in for Visual Studio 工具栏中的第一个按钮。
3.如何在自己的程序中使用 .m文件生成的动态链接库
以C:\MATLAB6p5\toolbox\images\images\mean2.m为例,建立的项目名为 mean2d。生成了mean2d.dll文件和mean2d.lib文件。
第一步:如前面所述:对 VC6.0 编译环境进行配置:头文件、库文件的路径、链接导入的静态库。并在导入的静态库中添加mean2d.lib文件。
第二步:在自己应用程序项目的头文件中加入以下代码:
#include "matlab.h"
extern "C" __declspec(dllimport) mxArray * mlfMean2(mxArray * x);
extern "C" __declspec(dllimport) void mean2dInitialize();
extern "C" __declspec(dllimport) void mean2dTerminate();
第三步:在要使用mean2函数的文件中加入以下代码:
#include "matlab.h"
#include "matrix.h"
//声名两矩阵,并初始化
mxArray *A,*b;
A=NULL;
b=NULL;
//由DIB文件头信息得到图像的行列数
int col=m_dibFile.m_lpBMIH->biWidth;
int row=m_dibFile.m_lpBMIH->biHeight;
//以图像行列数的大小建立矩阵A,8位无符号数
A=mxCreateNumericMatrix(row,col,mxUINT8_CLASS,mxREAL);
//建立一个标量 b ,大小为2.0
mlfAssign(&b,mlfScalar(2.0));
//将DIB文件的图像数据拷贝到矩阵A
memcpy(mxGetPr(A),m_dibFile.m_lpImage,row*col*sizeof(BYTE));
//计算均值
b=mlfMean2(A);
//将结果拷贝出来
double reslt;
memcpy(&reslt,mxGetPr(b),sizeof(double));
//销毁矩阵
mxDestroyArray(A);
mxDestroyArray(b);
//显示结果
CString info;
info.Format("图象的均值为: %f",reslt);
AfxMessageBox(info);
第四步:在使用mean2函数的构造函数和析构函数中分别加入下列代码:
//在构造函数中
mean2dInitialize();
//在析构函数中
mean2dTerminate();
第五步:将mean2d.dll文件和mean2d.lib文件拷贝到你的应用程序项目目录中。
第六步:编译,链接,运行应用程序。
4.发布程序
在没有安装MATLAB的计算机上,以上程序是无法正常运行的。好在MATLAB 将其所有的运行库,打包成了一个自解压文件。C:\MATLAB6p5\extern\lib\win32\mglinstaller.exe
在没有安装MATLAB的计算机上,运行mglinstaller.exe,它解压出两个目录 bin 和toolbox。你只要把 bin\win32 加入到计算机系统变量PATH中即可。
第一步:在安装MATLAB时,要安装MATLAB编译器(MATLAB Complier )。
第二步:在MATLAB命令提示符>>或者DOS命令框中键入命令:
mex –setup
进行编译环境选择:VC6.0。
第三步:在MATLAB命令提示符>>或者DOS命令框中键入命令:
mbuild –setup
进行编译环境选择:VC6.0。
第四步:在MATLAB命令提示符>>键入命令:
prefdir
显示用户 preference 目录位置。
第五步:在MATLAB命令提示符>>键入命令:
mccsavepath
然后将MATLAB的work目录中的mccpath文件拷贝到用户 preference 目录中。
保存Complier的路径信息。
第六步:如果使用的是Windows98,要在你的config.sys文件中加入一行:
shell=c:\command.com /e:32768 /p
第七步:在 VC6.0的Tools -> Customize -> Add-ins and Macro 选中MATLAB add-in for Visual Studio。将会出现MATLAB add-in for Visual Studio 工具栏。
同时MATLAB已在VC6.0的 Wizard 中新增了一项:MATLAB Project Wizard
2.MATLAB Project Wizard 的使用方法
第一步:在VC6.0中选取 File -> New -> MATLAB Project Wizard 建立一个新项目。
第二步:在 MATLAB Project Wizard 中,选择项目的应用类型:
共有五种类型可供选择:
l C-MEX DLL
l M-MEX DLL
l Windows Console EXE
l Share M-DLL
l Simulink C S-Function
选择 Share M-DLL 来建立 Windows 动态链接库。
生成的新项目信息
第三步:选择 .m 文件
选择要加入到动态链接库中的 .m 文件
加入的 .m 文件和由它生成的C文件
第四步:对 VC6.0 编译环境进行配置:头文件、库文件的路径、链接导入的静态库。
导入C:\MATLAB6p5\extern\lib\win32\microsoft\msvc60 中的静态库
第五步:编译、链接建立动态链接库DLL文件。
第六步:若要在项目中添加新的 .m 文件,可作用MATLAB add-in for Visual Studio 工具栏中的第一个按钮。
3.如何在自己的程序中使用 .m文件生成的动态链接库
以C:\MATLAB6p5\toolbox\images\images\mean2.m为例,建立的项目名为 mean2d。生成了mean2d.dll文件和mean2d.lib文件。
第一步:如前面所述:对 VC6.0 编译环境进行配置:头文件、库文件的路径、链接导入的静态库。并在导入的静态库中添加mean2d.lib文件。
第二步:在自己应用程序项目的头文件中加入以下代码:
#include "matlab.h"
extern "C" __declspec(dllimport) mxArray * mlfMean2(mxArray * x);
extern "C" __declspec(dllimport) void mean2dInitialize();
extern "C" __declspec(dllimport) void mean2dTerminate();
第三步:在要使用mean2函数的文件中加入以下代码:
#include "matlab.h"
#include "matrix.h"
……… |
//声名两矩阵,并初始化
mxArray *A,*b;
A=NULL;
b=NULL;
//由DIB文件头信息得到图像的行列数
int col=m_dibFile.m_lpBMIH->biWidth;
int row=m_dibFile.m_lpBMIH->biHeight;
//以图像行列数的大小建立矩阵A,8位无符号数
A=mxCreateNumericMatrix(row,col,mxUINT8_CLASS,mxREAL);
//建立一个标量 b ,大小为2.0
mlfAssign(&b,mlfScalar(2.0));
//将DIB文件的图像数据拷贝到矩阵A
memcpy(mxGetPr(A),m_dibFile.m_lpImage,row*col*sizeof(BYTE));
//计算均值
b=mlfMean2(A);
//将结果拷贝出来
double reslt;
memcpy(&reslt,mxGetPr(b),sizeof(double));
//销毁矩阵
mxDestroyArray(A);
mxDestroyArray(b);
//显示结果
CString info;
info.Format("图象的均值为: %f",reslt);
AfxMessageBox(info);
第四步:在使用mean2函数的构造函数和析构函数中分别加入下列代码:
//在构造函数中
mean2dInitialize();
//在析构函数中
mean2dTerminate();
第五步:将mean2d.dll文件和mean2d.lib文件拷贝到你的应用程序项目目录中。
第六步:编译,链接,运行应用程序。
4.发布程序
在没有安装MATLAB的计算机上,以上程序是无法正常运行的。好在MATLAB 将其所有的运行库,打包成了一个自解压文件。C:\MATLAB6p5\extern\lib\win32\mglinstaller.exe
在没有安装MATLAB的计算机上,运行mglinstaller.exe,它解压出两个目录 bin 和toolbox。你只要把 bin\win32 加入到计算机系统变量PATH中即可。
相关文章推荐
- 方法文件Matlab调用动态链接库
- C#调用Matlab生成的dll方法的详细说明
- Asp.net_关于如何利用编译器把[.cs]文件生成动态链接库[.dll]文件方法的总结
- matlab改变GUI和figure左上角图标的方法,并生成exe文件
- 生成带参数的exe文件及matlab调用带参数exe文件的方法
- aix中使用xlc编译生成动态链接库(shared object)(.so)文件的方法
- aix中使用xlc编译生成动态链接库(shared object)(.so)文件的方法
- C语言dll文件的说明以及生成、使用方法
- C#调用Matlab生成的dll方法的详细说明_C#教程
- Matlab笔记:文件操作相关的常用函数说明
- thinkphp中使用PHPExcel生成文件的一个通用方法!
- ios项目生成ipa文件的真正简单可用的方法
- 命令行下使用javah命令生成.h文件,出现“错误: 无法访问android.app.Activity 找不到android.app.Activity的类文件”的解决方法
- git diff 生成patch, git apply patch 打补丁方法说明,以及分支管理的简单操作。
- 使VB生成的exe文件窗口始终处于顶端的方法
- Win7不生成Thumbs.db文件的方法
- QT UI文件生成.h .cpp 的方法
- wince自动生成XIP映像文件的一种方法
- VS2010中配置C#Project不生成.vhost.exe和.pdb文件的方法
- midi文件结构分析及生成方法_移动短信技术