在“淺析VC與Matlab聯合編程 (一)”中簡單介紹了VC與matcom的接口編程,實現了VC調用matcom的一個基本功能,要真正熟練使用接口編程,還要對函數調用有一定了解。本文通過一個實例,較詳細的介紹如何在VC中調用matcom編譯後的函數。
首先新建一個函數huatu.m,該函數的功能是:接受用戶輸入的左端點值和右端點值兩個輸入參數,然後在該區間畫正弦圖形。函數還將生成兩個隨機數,作為一個點的坐標在圖中打印出來(綠點),用來說明如何在VC中處理調用函數的返回值。
步驟如下:
1.建立一個名為Example2基於對話框的MFC(exe)工程。
2.在matcom中新建一個名為huatu.m文件,如圖1;
圖1
3.在matcom命令窗口中運行該函數,如圖2;
圖2
4.將生成的huatu.h、huatu.cpp(默認位置為 安裝目錄:\matcom45\samples\Debug)和matlib.h、v4501v.lib(默認位置為 安裝目錄:\matcom45\lib)四個文件拷貝到建立的工程Example2目錄下。
5.將第四步拷貝的四個文件加入到VC工程中:工程->添加工程->文件,選擇剛才拷貝到Example2目錄下的四個文件。完成後如圖3;
圖3
6.在Example2dlg.cpp中添加頭文件:(如圖4所示)
#include "matlib.h"
#include "huatu.h"
圖4
7.為工程建立界面:添加一個Button按扭控件;添加四個Edit box控件,用於顯示數據;添加五個Static text控件,四個顯示文字,一個顯示圖形,將顯示圖形的Static text的ID設置為ID_PIC。其他所有控件屬性保持默認(為了看圖方便,可以適當調整顯示圖形Static text控件的邊緣)。如圖5所示
圖5
8.按Ctrl+W為控件添加變量。如圖6所示
圖6
9.為Button1按鈕添加響應代碼。如圖7所示
圖7
10.運行程序,輸入左端點和右端點,點擊”畫圖”按鈕,結果如圖8所示。(本例只是為了說明如何調用函數,沒有進行容錯處理)
圖8
注:如果在編譯中出現下列錯誤:fatal error C1010: unexpected end of file while looking for precompiled header directive
進行下列設置:工程->設置-> C/C++ 選擇precompiled headers 選擇第一或第二項:自動選擇預補償頁眉,如圖9所示
圖9
本例介紹了在VC中如何調用用matcom編譯的m函數的方法,並且基本上實現了VC和Matlab的無縫結合,希望對大家編程會有所幫助,現在時間很緊,下次有機會詳細介紹m文件翻譯成C++語言後代碼的含義。我的 QQ:44760299 歡迎大家一起討論!
本文配套源碼