<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                有的時候,我們在VC里直接實現一個想法比較復雜或者不夠理想,但是使用Matlab可以比較輕松的實現或者實現的效果比較理想,這個時候,我們可以選擇混合編程的方法,將預想功能模塊使用Matlab實現,在將其編譯成供VC調用的DLL,從而更好地實現達到的目標。 **一.基本環境**: 1. Microsoft Visual Studio 2008 SP1(VC++); 2. MATLAB Compiler Runtime;(**MCRInstaller.exe 可在網上下載安裝,已安裝了Matlab的就不需安裝了**) 3. OS:Windows XP。 **二. 基本方法: 1.環境準備:** ?首先值得說明的是,經過不斷的嘗試和搜集資料,發現要想在VC++中調用MATLAB編寫的DLL,必須至少要有MATLAB Compiler Runtime環境,也就是說得先安裝MCRInstaller.exe(約160M),當然,直接安裝MATLAB R2009a(約4.0G)也可以。顯然,如果您僅僅想用VC++調用MATLAB編寫的DLL,安裝MCRInstaller.exe 就足夠了,安裝完之后看一下系統環境變量的Path里是否已經添加了其路徑,如果沒有需手動添加,一般會有的。 **2.調用細節步驟:** (1)將MATLAB生成的:*.h、*.lib、*.dll 三個文件拷貝到當前項目的目錄下。 (2)設置VC++項目的屬性: 首先,在“配置屬性->C/C++->常規”的“附加包含目錄”中添加MCR的include目錄的路徑,我的路徑是: C:\Program Files\MATLAB\MATLAB Compiler Runtime\v713\extern\include 。如下圖所示: ![](https://box.kancloud.cn/2016-08-31_57c6b4a3eb381.gif) 其次,在“配置屬性->鏈接器->常規”的“附加庫目錄”中添加MCR的lib庫路徑,我的路徑是: C:\Program Files\MATLAB\MATLAB Compiler Runtime\v713\extern\lib\win32\ microsoft。如下圖所示: ![](https://box.kancloud.cn/2016-08-31_57c6b4a414938.gif) 最后,在“配置屬性->鏈接器->輸入”的“附加依賴項”中添加DLL中和程序中所依賴的lib庫名稱。如下圖所示: ![](https://box.kancloud.cn/2016-08-31_57c6b4a431343.gif) (3)VC++程序中的調用:(**詳細的實例可在我的CSDN資源中下載:[http://download.csdn.net/detail/margin1988/3677489](http://download.csdn.net/detail/margin1988/3677489)**) 首先,包含所使用到的頭文件,其次,正式調用。例如(我的libdrawAMResults DLL用于繪圖): ~~~ #include "libdrawAMResults.h" #include "mclmcrrt.h" #include "mclcppclass.h" //初始化MCR if(!mclInitializeApplication(NULL,0) ) { MessageBox(_T("Could not initialize MCR!")); } //初始化lib if(!libdrawAMResultsInitialize()) { MessageBox(_T("Could not initialize libdrawAMResults!")); } //上面的初始化可以放在程序中的InitInstance()函數中。 try { mwArray a(3,3,mxDOUBLE_CLASS); //double ha[9]={0,0.953,-0.544,1.189,0.177,-0.358,0.358,1.811,-0.358}; //a.SetData(ha,9); a(1,1) = 0; a(1,2) = 1.189; a(1,3) = 0.358; a(2,1) = 0.953; a(2,2)=0.177; a(2,3) = 1.811; a(3,1) = -0.544; a(3,2)=-0.358; a(3,3) = -0.358; //上面兩種方式初始化mwArray,得到的矩陣才是一樣。 } catch (const mwException& e) { MessageBox(_T("mwException!")); } ~~~ 最后,結果如下: ![](https://box.kancloud.cn/2016-08-31_57c6b4a4513ed.gif)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看