首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

淺析 VC 與 MATLAB 聯合程式設計 (三) — COM 元件實作完整教學

     編輯:關於VC++

前言

前兩文介紹 matcom 工具,但有結構體支援不全、3D 繪圖失真等限制。本文介紹另一種較易實現的方法:COM 介面。COM 技術複雜,此處不贅述,透過完整範例示範在 MATLAB 建立 COM 元件並在 VC 中呼叫。

1. 撰寫 MATLAB 函數 huatu.m

無輸入輸出參數,繪製簡單圖形。

MATLAB 函數編輯器

圖 1

2. 在 MATLAB 建立 COM 元件

  1. 命令視窗輸入 comtool,開啟 COM 元件編輯器。

    COM 元件編輯器

    圖 2

  2. File → New Project... 建立新專案。

    新專案對話框

    圖 3

  3. 設定元件屬性:Component name 填 component,Class name 填 huatu。移除預設類別 component,新增 huatu。

    屬性設定1

    圖 4

    屬性設定2

    圖 5

  4. 加入檔案:選中 huatu,Project → Add File... 選擇 huatu.m。注意:必須是函數檔,腳本檔需改為無參數函數。

    加入 M 檔

    圖 6

  5. 建置元件:Build → COM Object...。

    建置完成

    圖 7

元件預設儲存於 matlab安裝路徑\work\component。

3. VC 中呼叫 COM 元件

  1. 建立 MFC 對話方塊專案 ComHuaTu。
  2. 面板加入「畫圖」按鈕。

    VC 介面

    圖 8

  3. 複製 component_idl.h、component_idl_i.c (位於 \work\component\src) 到專案目錄並加入專案。
  4. 複製 matlab\extern\include\mwcomtypes.h 到專案目錄並加入。
  5. 在 stdafx.h 或對應 cpp 加入標頭檔:

    加入標頭檔

    圖 9

  6. 按鈕處理函數程式碼 (涉及 COM 基礎,詳見原文圖片):

    按鈕程式碼

    圖 10

  7. 設定預編譯標頭:Project → Settings → C/C++ → Precompiled Headers 設為「不使用預編譯標頭」。

    預編譯設定

    圖 11

  8. 編譯執行,結果:

    執行結果

    圖 12

結語

VC 呼叫 COM 元件方式簡單,幾乎支援所有 MATLAB 函數,適合 .m 檔較大、matcom/數學庫/mcc 難以實現的情境。注意:程式複製到他機器需註冊 COM 元件,建議製作安裝包。歡迎提供意見 (QQ: 44760299, Email: c_dinco@sina.com)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved