Borland C++Builder是一種新穎的可視化語言。在工程應用中,我們一般用C++Builder語言編寫應用程序,實現交互界面、數據采集和端口操作等,但C++Builder在數值處理分析和算法工具等方面,其效率遠遠低於Matlab語言。在准確方便地繪制數據圖形方面,Matlab語言更具有無可比擬的優勢。此外,Matlab還提供功能強大的工具箱。但Matlab的缺點是不能實現端口操作和實時控制。因此,若能將兩者結合運用,實現優勢互補,將獲得極大的效益。
本文結合實際介紹了應用Borland C++Builder3.0開發的Windos應用程序中,對Matlab的調用方法。
一、C++Builder調用Matlab的實現方案
1. 實現思路
在高版本的Matlab中(如Matlab V4.2)提供了DDE接口,用戶可以通過Windows的DDE通信基制實現外部調用。這種實現方式比較簡單,但將增大主程序代碼,影響運行速度。
在Windows系統中,DLL是一種很特別的可執行文件,可以被多個Windows應用程序同時訪問,具有固定的共享數據段。該數據段的數據在DLL被Windows下載前會一直保留在內存中,因此可以通過DLL實現用戶程序與Matlab之間的數據傳輸和函數調用。
具體地說,就是利用Matlab的32位動態連接庫(DLL),生成相應的可以被C++Builder調用的DLL,用來提供二者之間的基本支撐環境。只需在用戶程序中加載該DLL,即可實現其數據段的共享。然後在用戶程序中操作DLL數據段的數據,並通過某種方式在用戶程序中使Matlab執行該DLL,就可實現用戶程序對Matlab的調用。其形式可以是混合編程或函數調用,非常方便而高效。
2. 實現方式
Matlab提供了可外部連接的DLL文件,通過將其轉換為相應的Lib文件,並加以必要的設置,就可以在C++Builder中直接進行Matlab函數調用,實現C++ Builder語言與Matlab語言的混合編程。