figure('NumberTitle','off','MenuBar','none','ToolBar','none','Name','fig');
axis([0 1 0 1]);
(1)設定matlab環境: mex –setup mbuild –setup
(2)將m文件編譯生成.dll .lib .h
mcc –B cpplib:libhFig hFig.m
(如果m文件中含有eval函數,則該eval函數中調用的函數(假設為evalfun)必須提前聲明強制關聯, 即在主函數體最開始處添加 %# evalfun)
(支持向量分類機需添加:%#function code_OneVsOne
%#function crossvalidatelssvm
%#function misclass
%#function code
%#function codedist_hamming
支持向量回歸機需添加:%#function leaveoneoutlssvm
%#function mse
%#function gridsearch
%#function code
%#function codedist_hamming)
(3)設定VS2008環境:工具-選項-項目和解決方案-VC++目錄
添加包含文件路徑:。。。matlab\extern\include
添加庫文件路徑:。。。matlab\extern\lib
鏈接器-輸入-附加依賴項:mclmcrrt.lib libhFig.lib
鏈接器-常規-附加庫目錄:。。。matlab\extern\lib\win32\microsoft
(VS2010:VC++目錄在項目-屬性-配置屬性裏)
(4)將生成的.lib .dll .h文件拷貝到MFC工程源文件目錄,並將.h文件添加進解決方案
在源代碼裏添加:#include "libhFig.h"
對MCR及生成的庫進行初始化
在CMyView::OnInitUpdate()裏添加
if (!mclInitializeApplication(NULL,0))
{
AfxMessageBox(_T("Initialize Error!"));
return;
}
libhFigInitialize();
(5) 在需要處調用hFig.m函數(盡量使用try應付突發異常)
try
{
hFig();
}
catch (const mwException& erro)
{
CString str;
str = erro.what();
AfxMessageBox(str,NULL,NULL);
}
(6) 退出時釋放調用的庫
重寫DestroyWindow(),添加
libhFigTerminate();
mclTerminateApplication();