<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > Matlab與C/C++混合編程接口及應用

Matlab與C/C++混合編程接口及應用

作者: 時(shí)間:2012-08-27 來(lái)源:網(wǎng)絡(luò ) 收藏

3.3 利用mcc 編譯器生成的的DLL 文件

的C++ Complier不僅能夠將的m文件轉換為C/C++的源代碼,還能產(chǎn)生完全 脫離運行環(huán)境的獨立可執行DLL程序。從而可以在C/C++程序中,通過(guò)調用DLL實(shí)現對 Matlab代碼的調用。下面通過(guò)一個(gè)簡(jiǎn)單的例子說(shuō)明C/C++調用m文件生成的DLL:

a.建立m文件example4.m: function result=example4(para)

x=[1 para 3]; y=[1 3 1]; plot(x,y); result=para*2; end.然后在命令窗口中輸入:

mcc -t -W libhg:example4 -T link:lib -h libmmfile.mlib libmwsglm.mlib example4則在工作目錄下會(huì )生成example4 .dll、example4 .lib和example4 .h三個(gè)文件。

b.在VC中新建一個(gè)基于對話(huà)框的應用程序Test3,然后添加一個(gè)按鈕及按鈕響應函數,函數內容見(jiàn)d步,再將生成的3個(gè)文件拷貝到Test2工程目錄下。

c.VC編譯環(huán)境的設置如同3.2節c、d步;

d.在按鈕函數文件添加如下的頭文件:#include example4 .h ,函數響應代碼為:

mxArray* para=mxCreateDoubleScalar(2); mxArray* result; example4Initialize();

result=mlfExample4(para); CString str;

str.Format(%f,mxGetScalar(result)); AfxMessageBox(str);

e.編譯,連接,執行,結果如圖3所示。

利用mcc 編譯器生成的DLL 動(dòng)態(tài)連接庫文件,只需在C/C++編譯環(huán)境中將其包含進(jìn)來(lái), 調用導出函數即可實(shí)現原m 文件的功能,極大地方便了用戶(hù)的代碼設計。

4 結束語(yǔ)

本文從Matlab 調用C/C++代碼和C/C+調用m 文件兩方面,詳細地研究了Matlab 與C/C++ 技術(shù)。對于Matlab 調用C/C++代碼,給出了常用的MEX 技術(shù)和調用C/C++動(dòng)態(tài)連接 庫的方法,并對它們進(jìn)行比較。針對用戶(hù)在實(shí)際中經(jīng)常遇到的C/C++調用Matlab 問(wèn)題,通過(guò)研究給出了常用的三種方法及其特點(diǎn):利用Matlab 計算引擎的方法,后的可執 行程序脫離不了Matlab 的運行環(huán)境,運行速度很慢;利用mcc 編譯器將m 文件轉化為C/C++ 文件的方法,雖然能獨立于Matlab 運行環(huán)境,可在C/C++環(huán)境中包含生成的文件非常繁瑣; 但是m 文件生成的DLL 為用戶(hù)提供了一種簡(jiǎn)潔方便的C/C++調用Matlab 代碼的方法。除 Matlab 自帶的mcc 外,Matcom 也能將M 文件編譯為C/C++文件和DLL 文件[2][8],但 原理一樣,在此省略。


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: Matlab 混合編程 接口

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>