MATLAB7.1与Visual C++6.0混合编程

    在网络上很多关于MATLAB与VC++混合编程的程序,但是基本没有验证,且设置过程有错误。经过本人的尝试,我得出了正确的设置步骤,现写出来供大家参考。

一、MATLAB的M函数编写

1、这里的M函数代码如下:

function mccdemo1()
x = -5:0.1:5;
y = sin(x);
plot(x,y);//画图
xlabel('x');
ylabel('y');

将其保存为名字为mccdemo1.m的文件。

2、将该M函数编译成C++动态链接库

1)、在环境变量(我的电脑右键-高级)path中加入<MATLAB71_root>binwin32;

2)、添加环境变量matlab值设为< MATLAB71_root >即matlab7.1的安装路径;

3)、配置mbuild使用的C/C++编译器;

     在Matlab命令窗口中输入:

     mbuild -setup

     按照提示选择VC6.0的编译器,完成后在Matlab命令窗口中输入:

    mex -setup

    同样选择VC6.0的编译器,就完成编译器的安装和配置。

接下来我们要把.m文件存储的程序编译成dll文件,在matlab命令窗口中输入:

mcc -W lib:mccdemo1 -T link:lib mccdemo1.m

这个需要等一小段时间,最终,在当前目录下生成了

matlab7.0.1与vc6.0混合编程之DLL - 蓝眼泪 - 蓝眼泪的博客

其中CTF、DLL、H、LIB文件是我们后面需要的。

二、VC中的操作

在vc中建立一个MFC AppWizard[exe]基本对话框工程,名字叫做mccdemo1app.

)在 VC 中创建一个 MFC 工程(本人创建的为基于对话框的),环境设置如下:

A. Tools->Options->Directories->Show directories for : Include files-><matlab

7root> ExternInclude ; 

B. Tools->Options->Directories->Show directories for : Library files-><matlab

7root> ExternLibWin32Microsoftmsvc60 ; 

C. Project->Setting->C/C++->Category : Code Generation->Use run-time library 

: Debug Multithread DLL ; 

D. Project->Setting->Link->Category : Input->Object/library modules : test1.lib mclmcr.lib libmx.lib libmat.lib libeng.lib 

)拷贝 MATLAB 当前目录下刚才用 mcc 生成的 mccdemo1.h , mccdemo1.dll , mccdemo1.lib ,以及 mccdemo1.ctf 文件到 VC 当前工程目录下,并用 Project->Add to Project->Files… 将 mccdemo1.h 加入到当前工程中。 

)在当前工程的对话框的头文件和cpp中加入 #include "mccdemo1.h" 与 #include "mclmcr.h" ; 

这些设置过程非常重要,请严格按照此过程设置。

工程设置到此就结束了,下面开始写代码:

首先需要在对话框的初始化程序BOOL CMccdemo1appDlg::OnInitDialog()内写

 if( !mclInitializeApplication(NULL,0) ) //matlab环境初始化

 {

  AfxMessageBox( "Could not initialize the application.");

  exit(1); //可以是return FALSE;

 }

 

 if (!mccdemo1Initialize())              

 {

  AfxMessageBox("Could not initialize the library.");

  exit(1); //可以是return FALSE;

 }

//调用M函数

void CMccdemo1appDlg::OnOK()

{

 // TODO: Add extra validation here

 //此处为dll中的函数准备好参数,然后调用

 mlfMccdemo1();

 //CDialog::OnOK();一定要注释掉这一行,否则画不出图形就销毁对话框了

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《精通MATLAB与C/C++混合编程第3版》是一本专门介绍如何在MATLAB和C/C++之间进行混合编程的书籍。混合编程是指在MATLAB中调用C/C++代码,以提高程序的效率和性能。 这本书主要包含了以下内容:首先介绍了MATLAB和C/C++的基本知识,如MATLAB脚本语言和C/C++的语法、函数和变量的使用等。然后详细介绍了如何在MATLAB中调用C/C++代码,包括如何编写MEX文件(MATLAB可执行文件),以及如何在MATLAB环境中编译和运行这些文件。此外,还介绍了如何在MATLAB中使用C/C++的库函数和数据结构。 书中还讲解了一些高级的主题,如如何优化MATLAB和C/C++代码的性能、如何处理复杂的数据类型和多线程编程等。此外,还提供了一些实际案例和例子,帮助读者更好地理解和掌握混合编程的技巧和方法。 这本书的优点在于结合了MATLAB和C/C++的实际应用,介绍了大量的实际案例和技巧,对于想要学习如何在MATLAB和C/C++之间进行混合编程的人来说非常有用。无论是初学者还是有一定编程经验的人,都可以通过这本书提高自己的编程水平,提升自己的工作效率。 综上所述,《精通MATLAB与C/C++混合编程第3版》是一本非常实用的书籍,对于想要深入学习和应用MATLAB和C/C++混合编程的人来说是必备的参考资料。它不仅能够帮助读者了解MATLAB和C/C++之间的关系,还可以提升他们的编程水平和解决实际问题的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值