matlab编写的.M文件用vc6.0(MFC(dll)工程转换为dll文件,并用vc6.0(MFC对话框工程调用dll)文件
来源:互联网 发布:商城模板html源码 编辑:程序博客网 时间:2024/05/19 11:47
在开始建MFC(DLL)工程之前我们得下载matcom程序,然后安装,打开vc6.0然后打开 工具-定制-附加项,然后选中visual MATCOM Add-in,成功后在vc6.0工具栏上会有显示。
开始我们的工程:
(1)打开vc6.0建一个MFC(DLL)工程,然后点击工具栏上的m++按钮,添加编辑好的.m文件
(2)这时点击fileview视图,可以看到多了几个文件,然后将xx.h文件添加到工程中,注意xx表示.m文件的文件名
(3)打开stdafx.h,添加头文件#include“xx.h”
(4)定义dll文件入口,我们可以在 "工程名.h"文件中定义入口函数,形式如下:
extern “C” void run(int x,int y)(注意入口函数run可以随意定义,这就取决你把什么函数作为入口了)
(5)在“工程名.h”文件中实现这个入口函数,既在run函数中调用.m文件中的函数
(6)在“工程名.def”文件的最后面加入“run@1”语句,此语句必须加入,否则生成的dll文件无用。
注意加入.m文件后会生成一个g_xx.cpp文件,其中有一个main()函数,将这个文件删掉。
(7)编译产生dll文件。
例如我们有change.m文件如下
function[]=change(x,y)
t=x;
x=y;
y=t;
而
run函数如下
initM(MATCOM_VERSION)
Mm a,b;
a=x;
b=y;
change(a,b)
exitM();
接下来我们调用dll文件
新建工程mfc(exe)对话框文档;
在void CMyfederateDlg::OnOK()函数中添加
HINSTANCE hinst=NULL;
hinst=LoadLibrary(mycomname);
if(hinst!=NULL)
{
AfxMessageBox("加载成功");
}
lpfn=GetProcAddress(hinst,"run");注意这里的run就是前面生成dll文件工程的入口函数。
if(lpfn==NULL)
{
AfxMessageBox("不能加载");
return;
}
else{GetDT=(GETDT)lpfn;}
(*GetDT)(comin1,comin2);这里就是run函数的两个形参,这样就达到调用入口函数run的目的。
附:
Matcom工具的安装
先安装matcom
打开vc++6.0
打开工具->定制->附加项和宏文件->选中 visual matcom Add-in
这样就将matcom嵌入到vc6.0中了
如果嵌入成功后打开vc6.0会在工具栏窗口有显示。
- matlab编写的.M文件用vc6.0(MFC(dll)工程转换为dll文件,并用vc6.0(MFC对话框工程调用dll)文件
- MFC调用dll文件
- VC6.0 设置动态链接库工程生成dll以及lib文件的位置
- VC6.0调用Matlab Dll的方法
- vc6.0 mspd60.dll文件问题
- VC6中调用.dll文件中的函数
- 2014-03-31工作日志:VC6.0 设置动态链接库工程生成dll以及lib文件的位置
- VC6 编写,调用 DLL
- VC6.0 生成mfc dll 无法加载
- VC6.0下调用Dll文件提供的函数接口和全局变量(转)
- VC6下调试DLL文件
- vc6.0 中dll文件的创建和使用
- VC6.0中dll文件的创建和使用
- Qt中调用VC6生成的动态库DLL文件
- VC6.0 向导建立的各种DLL工程的区别
- VC6.0如何创建一个基本的Win32 DLL工程
- VC6.0下生成非MFC的DLL库
- VC6.0工程文件清理
- C++ 继承题
- 三大数学流派
- Design Patterns
- mciSendString用法
- 两个数之间的简单运算js
- matlab编写的.M文件用vc6.0(MFC(dll)工程转换为dll文件,并用vc6.0(MFC对话框工程调用dll)文件
- android动态菜单
- boost自动链接相关资料 auto_link.hpp
- Start Developing iOS Apps Today
- js 限制input只能输入数字,并删除不是数字的值
- 详解Java解析XML的四种方法
- acm2099
- 单点登录sso的解决方案(一)IFRAME或超连接方式
- iOS App Programming Guide 官方文档