《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Mideva編譯器的MATLAB與VC++混合編程技術
基于Mideva編譯器的MATLAB與VC++混合編程技術
2016年微型機與應用第1期
柴西林1,姜麗德2,馮凱1
(1.西北師范大學知行學院,甘肅 蘭州730070; 2. 甘肅天鑒建設集團有限公司,甘肅 蘭州730000)
摘要: 主要研究使用MATLAB編譯器實現MATLAB和VC++混合編程的方法。通過VC++直接運行Mideva編譯好的MATLAB可執行文件,或者調用Mideva編譯好的M文件動態鏈接庫,或者直接使用將M文件由Mideva轉換的C++代碼等三種方式之一,均可實現混合編程。將以上三種方法,通過一個基于MFC的對話框程序實例,較直觀地演示混合編程的實現過程。
Abstract:
Key words :

  摘要:主要研究使用MATLAB編譯器實現MATLAB和VC++混合編程的方法。通過VC++直接運行Mideva編譯好的MATLAB可執行文件,或者調用Mideva編譯好的M文件動態鏈接庫,或者直接使用將M文件由Mideva轉換的C++代碼等三種方式之一,均可實現混合編程。將以上三種方法,通過一個基于MFC的對話框程序實例,較直觀地演示混合編程的實現過程。

  關鍵詞: MATLAB;VC++;Mideva編譯器;混合編程

0引言

  MATLAB是當前在國內外十分流行的工程設計和系統仿真軟件[1]。MATLAB具有很強的數值計算和分析能力,尤其是其功能龐大的工具箱可直接應用到很多工程領域[2]。它以函數的形式為用戶提供不同領域的計算,通過調用需要的函數并賦予實際參數,用戶就能解決實際問題[3]。而VC++在這方面的應用不太成熟,但是VC++具有高效、靈活等特點。在科學研究和工程實踐中,將MATLAB和VC++結合起來進行混合編程,具有非常重要的意義。但是,M語言是一種解釋性語言,其應用場合和執行速度都受到了限制;而VC++是一種高效率、能對硬件進行操作的高級語言。將兩者的優勢結合起來,無疑給編程者帶來了福音,使工作效率大大提高,開發周期明顯縮短。

  MATLAB與Visual C++的混合編程技術方法有很多,主要有使用MATLAB引擎、使用ActiveX控件、使用MAT文件共享數據、使用Mideva工具、使用CMEX技術和使用Matlab其他編譯器等多種技術實現混合編程。通常,根據兩款軟件的特點,在混合編程中核心程序的開發主要由Matlab完成,而VC++可用來開發交互式很好的GUI且易于與硬件接口。

1Mideva集成調試編輯環境

  11Mideva簡介

  Mideva是一種具有比MATLAB更強大的編輯、調試功能的集成調試編輯環境[4],通過其內核Matcom 能夠將M文件轉化為C語言的代碼[5],并通過Visual C++將其編譯成可執行程序或動態鏈接庫[5]。近千個基本的MATLAB功能函數包含于Mideva中,在與C++的混合編程中只需做必要的設置即可,從而不再依賴MATLAB,實現了對MATLAB強大工具箱函數的調用。不足之處在于,Matcom對struct等類的支持不足,而且有些繪圖尤其是三維繪圖效果不是很好。因此,涉及三維繪圖以及M文件太大的情況下,不適合使用。

  12Mideva集成調試編輯環境的配置

  在MATLAB環境中可以由M文件生成exe文件,但此exe文件仍需要MCR才能運行,而利用Matcom則可以生成不再需要Matcom環境支持的exe文件[67]。其生成方法相當簡便,直接利用Matcom菜單“File/Compile to exe…”彈出如圖1所示的對話框,然后選擇所需的M文件,Matcom會自動生成相應的exe文件。Mideva的此項功能是僅針對Visual C++開發的,生成dll的方法與生成exe文件的方法類似,在此過程中會同時生成相應的cpp文件。因此,如果使用Visual C++開發程序,最好直接使用上述過程中編譯生成的cpp文件,而不要直接使用dll文件。編譯過后在Mideva下方的輸出欄,如圖1所示,顯示編譯完成。

001.jpg

  值得說明的是,Mideva環境下繪制圖形,還可以設計GUI界面程序,與MATLAB的GUIDE相似[8]。Mideva還可以像VC++一樣對M文件進行調試。

2Mideva集成調試編輯環境的使用

  Mideva安裝時會提示選取C/C++編輯器,還需要指定MATLAB,以便使編譯文件中的一些系統函數找到所需路徑。Mideva接口方便,通過菜單File→Compile to dll可直接實現M文件到可執行文件的轉換,同時會自動生成相應的C/CPP文件。為了將C/CPP代碼添加到VC++的工程中,必要的設置主要有以下幾步。

 ?。?)添加頭文件

  在“matcom45\\lib”目錄下,可以找到Mideva提供的函數頭文件Matlib.h。具體方法是:在菜單“Tools/Options…”中,選擇“Directories”選項卡,然后在“Show Directories for”中選取“Include files”,然后添加目錄“matcom45\\lib”。如圖2所示。

002.jpg

 ?。?)添加庫文件

  在“Show Directories for”中選取“Library files”,然后添加目錄“matcom45\\lib”。如圖3所示。需要注意的是,不同版本的Mideva文件名可能略有差異,可以修改matlibh中Matcom_VERSION宏定義。

 

003.jpg

  以VC60為例,Mideva同時提供可供使用的插件,單擊VC60菜單“Tools/Customize...”,將會彈出如圖4所示對話框,然后選擇“Addins and Macro Files”選項卡,單擊瀏覽按鈕,選擇“matcom45/bin/mvcidedll”,單擊關閉,則在VC60集成環境中出現Visual Matcom圖標,此時表明MATLAB的編譯工具已與VisualC ++連接,如圖5所示?! ?/p>

004.jpg

3使用Mideva實現混合編程

  31混合編程實現過程流程圖

  運用Visual C++調用MATLAB實現混合編程,通過以下三種方式均可實現:(1)Mideva將M文件編譯為可執行文件,VC通過編程執行可執行文件實現混合編程。(2)Mideva將M文件編譯為動態鏈接庫,VC在運行時調用。(3)Mideva將文件轉換為C++代碼,VC直接使用轉換后的代碼進行混合編程。將以上三種方法通過一個基于MFC的對話框程序實例,演示混合編程的實現過程,如圖6所示。

005.jpg

  32基于 MFC的對話框實例程序實現混合編程的步驟

 ?。?)創建名稱為MidevaDemo1m的M文件。在MATLAB環境下創建M文件,內容為一個簡單的正弦函數。并將M文件保存在新建的工程目錄下。

  (2)在Mideva環境下將MidevaDemo1m分別編譯為動態鏈接庫和可執行文件,在工程目錄下產生相關的代碼。由于動態鏈接庫和可執行文件產生的“g_MidevaDemo1cpp”不同,所以分別新建兩個工程目錄“DLLWORK”和“EXEWORK”。其他兩個文件“MidevaDemo1h”和“MidevaDemo1cpp”在兩個工程中內容相同。

 ?。?)創建MFC對話框的工程,工程名稱為MCCDemo。設計對話框界面如圖7所示。

006.jpg

 ?。?)在文件“MccDemo1Dlgcpp”中包含頭文件:

  include<matlib.h>

  (5)向工程添加文件V4501lib,如圖8所示。

007.jpg

 ?。?)在圖7所示的MFC實例混合編程運行結果總界面中,單擊“執行EXE程序”按鈕,則彈出如圖9所示界面;單擊“調用DLL代碼”則彈出如圖10所示界面;單擊“執行源代碼”則彈出如圖11所示界面。

008.jpg

4結論

  從上述運行結果可以看出,不同的運行方式得到的圖形繪制結果一致。運用VC++通過編程執行exe文件實現的混合編程,這種方式易于維護,但應用程序耦合比較松散,界面不統一。VC ++調用MATLAB數學庫和經過編譯的動態鏈接庫,具有內存需求小、執行速度快、可以發布給沒有MATLAB的用戶使用等顯著的優點。但也有幾個缺點:用戶不能夠在基于MATLAB數學庫和圖形庫的應用程序中使用MATLAB的 eval()和input()函數,不能調用圖形句柄系統的函數,不能調用MATLAB工具箱的函數。本文僅在可行性(feasibility)層面上進行了論證,對于實質性的應用還需進一步研究和實踐。

參考文獻

 ?。?] 柴西林,邵照勇.基于MatlabGUI的數字濾波器設計及其應用[J].微型機與應用,2012,31(14):3-6.

 ?。?] 張亮,王繼陽.MATLAB與C/C++混合編程[M].北京:人民郵電出版社,2008.

  [3] 柴西林,朱國平,邵照勇.基于不同算法實現的數字圖像水印技術及其抗攻擊性比較[J].數字技術與應用,2012(3):97-98.

 ?。?] IDEVA1 M.Matcom &Visual Matcom user’s guide V 45 Release [M] .MathToo1s Ltd.,1999.[5] 蘇金明,黃國.MATLAB與外部程序接口[M].北京:電子工業出版社,2008.

 ?。?] 楊文臣,張輪,何兆成,等.Matlab 與VC++混合編程及其在交通信號兩級模糊控制中的應用[J].公路交通科技,2012,29(9):123-128.

  [7] 易馳,文小玲,鄒艷華,等.基于VC++60的讀表軟件設計[J].微型機與應用,2014,33(5):16-19.

 ?。?] 肖永韌,解習農,劉曉峰.VC 與MATLAB 混合編程之DL L實現方法[J].計算機工程與應用, 2001(13):174- 176.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          一区二区在线观看视频| 欧美福利视频| 国产精品美女久久福利网站| 欧美激情在线有限公司| 一区二区三区亚洲| 国产精品最新自拍| 午夜精品久久久久久久99樱桃| 欧美一区二区三区在| 欧美日韩亚洲另类| 国产精品一二三四| 久久精品动漫| 国产精品第2页| 麻豆成人在线播放| 国产精品夜夜夜一区二区三区尤| 久久蜜桃精品| 亚洲高清久久网| 久久综合色婷婷| 在线视频国内自拍亚洲视频| 亚洲欧美日韩国产中文在线| 亚洲国产高清视频| 国产亚洲精品bv在线观看| 久久精品视频免费| 亚洲欧美福利一区二区| 国产裸体写真av一区二区| 在线观看日韩国产| 亚洲丁香婷深爱综合| 午夜精品久久久久久久蜜桃app| 国产亚洲欧美色| 国产亚洲免费的视频看| 国产精品国产a| 国产伦精品一区二区三区视频黑人| 乱人伦精品视频在线观看| 亚洲激情啪啪| 久久夜色精品亚洲噜噜国产mv| 国产一区日韩一区| 国产精品丝袜91| 欧美一区三区二区在线观看| 久久久99久久精品女同性| 欧美国产日韩精品| 99在线观看免费视频精品观看| 欧美与欧洲交xxxx免费观看| 亚洲国产日韩在线一区模特| 在线播放亚洲一区| 亚洲精品一区二区三| 国产精品久久久久久影院8一贰佰| 久久美女艺术照精彩视频福利播放| 国产精品99久久久久久人| 国产欧美日韩精品专区| 亚洲第一成人在线| 国产精品视频免费观看| 亚洲精品久久久久久下一站| 亚洲一区二区三区乱码aⅴ| 国产欧美一区二区三区久久| 亚洲午夜久久久久久久久电影网| 99人久久精品视频最新地址| 欧美激情在线免费观看| 亚洲高清视频中文字幕| 欧美日韩免费在线| 欧美一区三区三区高中清蜜桃| 久久视频在线免费观看| 一区二区三区色| 久久av一区二区三区漫画| 六十路精品视频| 欧美大片va欧美在线播放| 欧美精品在欧美一区二区少妇| 亚洲视频在线免费观看| 99热这里只有成人精品国产| 国产精品国产三级国产专区53| 免费观看久久久4p| 免费亚洲电影在线| 亚洲香蕉视频| 91久久久精品| 亚洲六月丁香色婷婷综合久久| 亚洲精品乱码久久久久久| 欧美aaaaaaaa牛牛影院| 久久国产毛片| 国产美女诱惑一区二区| 欧美不卡一卡二卡免费版| 欧美日韩免费视频| 欧美国产精品一区| 亚洲国产精品女人久久久| 亚洲一区国产精品| 亚洲一区二区三区高清不卡| 欧美日韩一区二区三区在线视频| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美激情第8页| 精品va天堂亚洲国产| 久久久久久国产精品一区| 欧美日韩精品系列| 一区二区三区产品免费精品久久75| 久久综合伊人77777蜜臀| 你懂的亚洲视频| 欧美精品日韩综合在线| 欧美日韩国产亚洲一区| 欧美日韩在线一区二区三区| 久久琪琪电影院| 国产精品v欧美精品v日韩| 欧美精品色一区二区三区| 欧美视频一区二区三区四区| 亚洲国产一区二区在线| 欧美精品精品一区| 国产精品久久久久久亚洲调教| 欧美精品一卡二卡| 国产日韩一区| 亚洲一区精品视频| 美女黄网久久| 欧美日韩国产在线一区| 亚洲国产精品久久久久婷婷884| 欧美永久精品| 国产一区香蕉久久| 亚洲欧美日韩精品久久奇米色影视| 黄色成人在线免费| 国产精品日韩| 欧美另类69精品久久久久9999| 国产精品99久久99久久久二8| 亚洲美女黄色| 欧美人与禽猛交乱配| 久久精品日韩一区二区三区| 国产综合色在线视频区| 欧美激情亚洲国产| 韩国v欧美v日本v亚洲v| 激情综合亚洲| 国产丝袜一区二区| 欧美va日韩va| 欧美国产精品劲爆| 久久久久久久久久久久久女国产乱| 另类春色校园亚洲| 国产揄拍国内精品对白| 久久久久国产精品www| 欧美日韩一区高清| 欧美日韩1区2区| 欧美日韩视频在线一区二区| 在线一区二区三区四区| 国产欧美日韩免费看aⅴ视频| 日韩一级在线| 国产三级欧美三级日产三级99| 欧美黄网免费在线观看| 国内综合精品午夜久久资源| 欧美黄色aaaa| 欧美成人按摩| 亚洲特黄一级片| 亚洲国产va精品久久久不卡综合| 国产精品久久久久久久9999| 亚洲免费在线视频| 麻豆精品在线播放| 久久综合伊人77777麻豆| 国产精品一区二区三区久久久| 国内成+人亚洲+欧美+综合在线| 国产精品羞羞答答xxdd| 久久精品成人一区二区三区蜜臀| 国产欧美在线看| 亚洲影院在线观看| 国产亚洲精品aa午夜观看| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲人成7777| 久久成人亚洲| 黄色日韩网站| 国产精品日韩二区| 久久综合色8888| 国产日韩一区在线| 一区二区三区国产精品| 国产精品videossex久久发布| 国产视频一区在线观看一区免费| 欧美黄色一区二区| 亚洲欧洲在线播放| 性欧美在线看片a免费观看| 亚洲另类一区二区| 欧美成人精品h版在线观看| 激情综合久久| 亚洲国产精选| 国产精品一区二区你懂得| 欧美日韩亚洲一区二区三区四区| 欧美久久视频| 欧美成人黄色小视频| 在线综合+亚洲+欧美中文字幕| 一本色道久久加勒比88综合| 欧美日韩国产va另类| 亚洲国产精品一区在线观看不卡| 久久久综合视频| 久久久久网址| 国内久久婷婷综合| 国产一区二区看久久| 欧美激情一区二区三级高清视频| 好吊妞这里只有精品| 99re亚洲国产精品| 在线视频你懂得一区二区三区| 99国内精品久久| 99re热这里只有精品视频| 欧美在线日韩在线| 亚洲美女在线一区| 欧美亚洲一区二区在线| 美女露胸一区二区三区| 亚洲欧美日本在线| 欧美日韩亚洲高清一区二区| 欧美视频观看一区| 午夜精品美女久久久久av福利| 欧美成年人网| 亚洲电影免费观看高清完整版| 久久久久久久久久码影片| 久久蜜桃av一区精品变态类天堂| 国产麻豆一精品一av一免费| 午夜日韩激情| 国产精品第三页| 亚洲免费久久| 中日韩美女免费视频网址在线观看| 欧美日韩在线视频一区| 久久久99久久精品女同性| 久久国产欧美精品| 久久久久久久精| 一区二区日韩精品| 欧美午夜性色大片在线观看| 国产精品久久久久国产a级| 国产一区二区高清不卡| 免费h精品视频在线播放| 欧美四级电影网站| 国产精品日日做人人爱| 亚洲激情视频在线| 亚洲香蕉成视频在线观看| 国产欧美日韩不卡| 亚洲高清在线观看| 模特精品裸拍一区| 一区二区三区.www| 亚洲人体大胆视频| 国产欧美另类| 亚洲国产精品va在线观看黑人| 国产精品红桃| 欧美成人首页| 精品999成人| 欧美日韩精品久久| 亚洲精品欧美激情| 一本大道久久精品懂色aⅴ| 一区二区三区产品免费精品久久75| 亚洲一区国产视频| 国产精品夜夜夜| 国产日韩精品一区二区三区在线| 99国产欧美久久久精品| 国产一区二区电影在线观看| 亚洲欧洲日产国码二区| 欧美精品偷拍| 国产精品欧美一区喷水| 亚洲欧美影院| 国产精品久久久久aaaa樱花| 亚洲国产成人高清精品| 亚洲裸体在线观看| 亚洲国产一区二区视频| 亚洲国产激情| 国内精品久久久久久影视8| 亚洲国产高清在线观看视频| 亚洲欧美国产高清va在线播| 久久手机精品视频| 亚洲午夜免费福利视频| 国产嫩草影院久久久久| 美女主播精品视频一二三四| 久久婷婷国产麻豆91天堂| 亚洲黄色性网站| 亚洲一区二区日本| 国产精品成人观看视频国产奇米| 国产欧美精品一区aⅴ影院| 国产偷国产偷精品高清尤物| 亚洲欧美三级伦理| 亚洲黄一区二区三区| 99在线精品视频在线观看| 欧美四级伦理在线| 亚洲一区日本| 欧美日韩一区二区三区在线看| 久久黄色小说| 国产免费观看久久| 99re6这里只有精品视频在线观看| 黄色亚洲网站| 亚洲自啪免费| 国产在线麻豆精品观看| 亚洲免费高清视频| 国产精品久久二区二区| 国产视频一区在线| 国产精品久久久久国产精品日日| 国产欧美日韩精品丝袜高跟鞋| 久久久国产成人精品| 亚洲国产精品久久久久婷婷884| 国产欧美短视频| 国产精品女人毛片| 影音先锋久久| 欧美日韩久久久久久| 在线亚洲+欧美+日本专区| 国产欧美日本在线| 国产一区二区三区免费不卡| 亚洲欧美国产三级| 亚洲欧美bt| 亚洲欧美日韩另类| 国产美女精品人人做人人爽| 亚洲二区在线观看| 亚洲一区二区四区| 国产精品美女在线| 一区二区三区欧美在线观看| 亚洲一区二区三区中文字幕在线| 136国产福利精品导航网址应用| 性一交一乱一区二区洋洋av| 在线观看成人一级片| 国产午夜精品视频免费不卡69堂| 一区二区久久久久| 欧美 亚欧 日韩视频在线| 亚洲欧美在线观看| 久久久久久久网| 欧美激情一区二区三区成人| 国产精品丝袜久久久久久app| 久久精品欧美| 狂野欧美激情性xxxx| 亚洲在线1234| 在线一区免费观看| 亚洲国语精品自产拍在线观看| 在线精品亚洲一区二区| 久久亚洲精品伦理| 欧美一级黄色网| 国产精品麻豆欧美日韩ww| 免费成人av资源网| 国产精品一二一区| 亚洲欧美一区二区三区久久| 亚洲国产美女| 国产精品欧美日韩一区二区| 久久精品综合网| 亚洲国产成人porn| 国产精品国产三级国产专播品爱网| 国产精品日日摸夜夜添夜夜av| 欧美午夜无遮挡| 亚洲欧美福利一区二区| 国产精品日韩精品欧美在线| 欧美激情综合五月色丁香| 久久久精品久久久久| 欧美日韩影院|