當(dāng)前位置:
首頁(yè) >
C++调用matlab dll
發(fā)布時(shí)間:2023/12/10
40
豆豆
生活随笔
收集整理的這篇文章主要介紹了
C++调用matlab dll
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 編寫(xiě)matlab函數(shù)
2.? 命令行輸入
?mex -setup
選擇 mex -setup C++?
3. 命令行輸入
mbuild -setup
選擇?mex -setup C++ -client MBUILD?
4. 命令行輸入
mcc -W cpplib:add -T link:lib add.m -C
第一個(gè)add為生成的dll名稱,第二個(gè)add為m文件名稱,m文件名稱需要和m文件里面函數(shù)名稱一致,如果用Add這樣的
大寫(xiě)開(kāi)頭名稱,會(huì)出現(xiàn)生成的C++頭文件函數(shù)名為add,與m文件中的函數(shù)名Add名稱不一致,C++調(diào)用會(huì)報(bào)錯(cuò),所以
干脆都用小寫(xiě)名稱就得了。
5. 新建win32工程,導(dǎo)入matlab頭文件路徑和庫(kù)文件路徑
頭文件路徑? MATLAB\R2018a\extern\include
庫(kù)文件路徑? MATLAB\R2018a\extern\lib\win64\microsoft
7. 將生成的h文件和lib文件導(dǎo)入工程
8.編寫(xiě)下面測(cè)試代碼驗(yàn)證
#include <iostream> #include "add.h" #pragma comment (lib,"add.lib")int main() {if (!addInitialize()){std::cout << "AddInitialize failed" << std::endl;}mwArray a(1, 1, mxDOUBLE_CLASS);a(1) = 16;mwArray b(1, 1, mxDOUBLE_CLASS);b(1) = 8;mwArray z(1, 1, mxDOUBLE_CLASS);z(1) = 19;add(1, z, a, b);std::cout << a << "+" << b << "=" << z << std::endl;addTerminate();system("pause"); }?
?
?
總結(jié)
以上是生活随笔為你收集整理的C++调用matlab dll的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 国债逆回购会亏损本金吗?注意这两种情况
- 下一篇: C++中正确使用PRId64