?? 新建 文本文檔.txt
字號:
不生成cpp文件交給VC去編譯,而是直接在m
atlab中生成一個dll交給VC去鏈接即可。這樣無論matlab生成多少文件,都只需要拷貝三
個文件即可。
1. 建一個m文件,內容為:(我特意在這個程序中演示圖像顯示,參數傳遞與返回)
%%%%%%%%%%%%%%%%%%%%%%
function result=fork_2(para)
x=[1 para 3];
y=[1 3 1];
plot(x,y);
result=para*2;
%%%%%%%%%%%%%%%%%%%%%%
保存后在命令窗口中:
輸入:(格式:mcc -t -W libhg:<自己起個名字> -T link:lib -h libmmfile.mlib
libmwsglm.mlib 文件名)
mcc -t -W libhg:fork2 -T link:lib -h libmmfile.mlib libmwsglm.mlib fork_2
然后你會在你的工作目錄下找到fork2.dll,fork2.lib,fork2.h三個文件。
2. 在VC中建一個基于對話框的MFC應用程序,名字為testFork2,添加一個
按鈕,并添加按鈕響應函數,函數內容在第五步中說明。將上面生成的
3個文件拷貝到VC工程的testFork2目錄里。
3. 在VC中選擇:工程--->設置,再選屬性表Link選項,下拉菜單中選擇Input,
在對象/庫模塊中加入附錄A中所列出的內容,注意用空格將它們格開而在忽略
庫中加入附錄B中列出的內容;再選擇屬性表C/C++選項,下拉菜單選General,
在預處理程序定義中添加附錄C中的內容,原來有的內容要保留,并注意用逗號
將它們隔開。再選擇下拉菜單的Precompiled Headers選項,選擇“自動使用預
補償頁眉”,在其中添加stdafx.h ,確定。
4. 選擇:工具--->選擇,屬性頁選擇“目錄”,在include files里面加入:
C:\MATLAB6P5\EXTERN\INCLUDE
C:\MATLAB6P5\EXTERN\INCLUDE\CPP
注意,根據你的matlab的安裝位置的不同,要相應的修改上面的地址。
在Library files里面加入:
C:\MATLAB6P5\EXTERN\LIB\WIN32
C:\MATLAB6P5\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
注意,根據你的matlab的安裝位置的不同,要相應的修改上面的地址。
5. 在按鈕響應函數所在文件中添加如下的頭文件:
......
#include "fork2.h"
......
函數響應代碼為:
mxArray* para=mxCreateDoubleScalar(2);
mxArray* result;
fork2Initialize();
result=mlfFork_2(para);
CString str;
str.Format("%f",mxGetScalar(result));
AfxMessageBox(str);
6. 在第三步中提到的Link---->Input選項中加入一項:fork2.lib
7. 編譯,連接,執行,一切OK!
附錄A:鏈接庫
libmmfile.lib libmatlb.lib libmx.lib libmat.lib libmatpm.lib
sgl.lib libmwsglm.lib libmwservices.lib libut.lib
附錄B:忽略庫
msvcrt.lib
附錄C: 預處理程序定義
MSVC,IBMPC,MSWIND
附錄D:進一步參考
mxArray的使用參考matlab網站的cmath_ug2b.pdf
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -