在matlab中呼叫mex函式,通過visual c++2010單步除錯mex檔案
步驟:[1]利用-g選項編譯mex檔案
本節利用testmexvc.c例項程式,其**如下所示:
#include
"mex.h"
void mexfunction(intnlhs, mxarray *plhs, int nrhs, const mxarray *prhs)
在vc++2010中除錯mex檔案,需要用-g選項編譯mex檔案,如下所示:
mex testmexvc.c –g
生成:兩
[2]開啟vc++2010,然後選擇tools--------attach to process選單項,如圖所示
[3]在彈出的對話方塊中選擇matlab程序,然後單擊attach按鈕確定,如下圖所示
[4]選擇file-----open file選單項開啟待除錯的檔案testmexvc.c,在testmexvc.c檔案中設定斷點,如下面所示:
[5]在matlab命令列視窗中執行待除錯的mex檔案testmexvc,程式執行到斷點的位置便會暫停,使用者可以根據需要對程式進行除錯,如下圖所示:
注:(1)[3]、[4]步驟可以互換
(2)若mex檔案中呼叫了其他c/c++檔案,也可對c/c++檔案進行單步除錯。如libsvm工具箱中的svm_model_matlab與svmtrain呼叫的svm.cpp檔案。
VC 2010中GDAL的安裝
準備檔案 vs2010 必須滴 gdal的原始碼 我用的這個版本的 1 編譯gdal,獲取include和lib和dll 2 啟動cmd,進入vc10的安裝目錄下,預設為c program files microsoft visual studio 10.0 vc bin,要是你會改目錄,找這個東西...
vc2010呼叫儲存過程
coinitialize null connectionptr pmyconnect null hresult hr pmyconnect.createinstance uuidof connection if failed hr return bstr t strconnect provider ...
VC2010的 DYNAMICBASE鏈結選項問題
近期偶然用windbg給乙個控制台程式的入口函式下斷點,位址之際用編譯出的map檔案中main函式的位址。結果windbg報告斷點未下成功,經過反覆檢視,包括在vc環境中除錯執行,均發現main函式的位址和map檔案中位址不一樣,切帶有隨機性。又用vc6.0實驗一遍,發現沒有任何問題。看來問題是出在...