Visual C++.net 2003 與Matcom4.5混合編程
引言
目前關於vc++與Matcom4.5混合編程的文檔均爲Visual C++ 6.0的,而Visual C++.net 2003與Visual C++ 6.0在設置上有一定的區別,因此本文總結了在編程過程中對Visual C++.net 2003的設置過程做了一個總結,希望對大家有一定的參考價值。
Matcom4.5的安裝
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.1安裝之前,首先在matlab的安裝目錄下建立文件夾:/bin/toolbox/matlab/general。(此步不需工----Eric)Matcom4.5在安裝時需要你輸入口令,Matcom4.5的口令爲FREE-4.5-1193046-80295111。
1.2安裝完成後,mideva在window的註冊表中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.3在CtestView.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
在次一併表示感謝。
祝編程愉快,呵呵