Visual C++.net 2003 与Matcom4.5混合编程

来源:互联网 发布:java中init方法 编辑:程序博客网 时间:2024/05/04 15:29

Visual C++.net 2003 Matcom4.5混合编程

引言

目前关于vc++Matcom4.5混合编程的文档均为Visual C++ 6.0的,而Visual C++.net 2003Visual C++ 6.0在设置上有一定的区别,因此本文总结了在编程过程中对Visual C++.net 2003的设置过程做了一个总结,希望对大家有一定的参考价值。

Matcom4.5的安装

 

1.1安装之前,首先在matlab的安装目录下建立文件夹:/bin/toolbox/matlab/general(此步不需工----Eric)Matcom4.5在安装时需要你输入口令,Matcom4.5的口令为FREE-4.5-1193046-80295111

1.2安装完成后,midevawindow的注册表中HKEY_CURRENT_USER/Software/MathTools/Matcom/4.50/License/下面添加一个键,键名默认,键值为FREE-4.5-1193046-80295111(此步也不需要----Eric)你如果删除它,再次启动matcom的时候,就会再次询问口令。不过好在如果通过这个口令之后,程序发布时就不再有限制了,也就是在这个注册后的系统中编译的程序,发布时就不用代一个注册文件了。

1.3第一次运行时,MATcom4.5自动搜索VC编译器并提示用户是否安装,之后提示是否安装有MATLAB,回答安装后,如果没有建立文件夹/MATLAB701/bin/toolbox/matlab/general,则发生错误。手动建立文件夹,再重新启动MATcom4.5即可。
(2)Visual C.net 2003
环境设置。   
Visual C.net 2003中的"工具/选项/项目/vc++目录中

包含文件-》,添加Matcom4.5安装目录中matlab.h的路径

库文件-》添加Matcom4.5安装目录中v4501v.lib的路径

(3)修改vc.net源代码。  
3.1
建立一个mfc单文档工程如“test

 
3.2
stdafx.h中添加

#include "matlib.h"

#ifdef _DEBUG

#pragma comment(lib, "v4501v.lib")

#else

#pragma comment(lib, "v4501v.lib")

#endif

 

3.3CtestView.h类声明中

protected:下添加

bool init;

3.4CtestView.cpp

的构造函数添加如下代码

CtestView::CtestView()

{

       // TODO: 在此处添加构造代码

    init=false;

}

在其成员函数OnDraw中添加如下代码

if (!init) {

              initM(MATCOM_VERSION);

              Mm h = winaxes(m_hWnd);

 //------------实例程序可自行添加代码―――――――――――

              axesposition(10,10,300,180);

              plot((CL(magic(20+40*rand()))));

              title((CL(TM("Random plot"))));

              xlabel((CL(TM("This is the x axis"))));

              ylabel((CL(TM("This is the y axis"))));

              set(h,(CL(TM("Color")),TM("white")));

              set(h,(CL(TM("Box")),TM("on")));

//------------―――――――――――――――

 

              init=true;

       }

       drawnow();

结束 

这样一个简单的Visual C++.net 2003 Matcom4.5混合编程的框架就大好了,由于本人只是有限,难免有不足之处,欢迎讨论。

本文参考了一下两篇文档

Eric

http://blog.csdn.net/Radical608/archive/2008/06/01/2469983.aspx

CteX

http://blog.csdn.net/CTeX/archive/2005/10/16/504933.aspx

在次一并表示感谢。

祝编程愉快,呵呵