基于matcom.4.5的VC++与Matlab通用接口程序编制

摘要: 本文着重探讨基于matcom.4.5的VC++与Matlab接口程序的实现问题,该问题虽然已有一些相关文献资料,但都必须插入不同的相关连接代码。本文实现了统一的规范,使VC++与Matlab接口程序的编制成为一种机械的通用程序,不需要嵌入另外的代码,即使不懂VC++,也能实现程序的编制。最重要的是该接口程序能够脱离VC++与Matlab的安装环境运行。



一、        利用matcom4.5编译接口程序的步骤

1.预备工作
在matcom4.5的安装过程中若出现“某一路径下缺少XXX.m文件”的提示,则应手工建立该路径及空白的XXX.m文件,然后重新运行安装程序。另外将需要转化的matlab文件准备就绪,本文为LFFT.m、surfit.m,其中surfit.m为子程序,可以有多个子程序,一定要使LFFT.m预先在matlab下运行通过,同时一定要使LFFT.m文件内容的第一行为function LFFT()。
2.运行matcom4.5后打开LFFT.m
点击file -> compile to dll,在右下角的窗口内察看有无错误发生,如有则修改相应的matlab程序重新执行,如没有错误则完成cpp转化,转化成的代码在matcom/Debug内。如果想马上验证转化后代码的执行情况,则继续点击file -> compile to exe,结果可产生LFFT.exe文件,可直接运行进行验证。
3.将cpp代码插入VC++框架
1)        打开matcom/lib文件夹,拷贝matlib.h、v4501v.lib两个文件到matcom/debug目录。
2)        打开系统文件搜索向导,查找ago4501.dll和v4501v.dll两个文件,并将其拷贝到matcom/debug目录。
3)        打开vc++6.0,建立文档界面,新建“FFT”菜单,并映射菜单打开函数onFFT(),使该函数位于“view”类,并拷贝matcom/debug下的所有内容到工程目录。
4)        在VC工程文件中,加入工程目录下所有待插入的“.h”头文件及v4501.lib库文件。
5)        在view类cpp文件中包含所有加入工程的头文件的文件名,并包含“#pragma hdrstop”(可从工程下的LFFT.cpp内复制),并在view类内初始化init=false;
6)        在view类的头文件下加入:
//Implementation
……
protected:
bool init;
7)        在onFFT()函数的执行处加入固定格式
if (!init)
{begin_scope
initM(MATCOM_VERSION);
LFFT();//此处为可变处,随所要操作的matlab文件变化;
exitM();
init=true;
end_scope}
init=false;
8)        在view类的cpp文件的末尾处(必须是末尾处,否则可能产生编译错误),拷入LFFT.cpp下的函数:Mm LFFT(){……}。
继续拷入除g_LFFT.cpp外的其它所有“.cpp”文件内的函数(该过程不能用常规的添加“.cpp”文件来代替)。
9)完成并运行程序。
   该工程可脱离matlab与vc++环境运行。若需要vc++生成的debug内的可执行文件单独运行,需将ago4501.dll和v4501v.dll同步提出方可。如果独立运行时还缺少某个链结dll文件,可以在产生该接口程序的电脑windows或winNT文件夹内搜寻。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值