环境配置
由于matlab是64位的,所以vs一定要在x64的环境下运行!
matlab加法器法代码
function C=Addtest(A,B)
C=A+B;
end
保存文件名为Addtest.m,生成的动态链接库文件如下所示:
在VS建立mfc项目,选择基于对话框的。
VC++包含目录:
D:\Program Files\MATLAB\R2014a\extern\include\win64
D:\Program Files\MATLAB\R2014a\extern\include
D:\Documents\MATLAB\Addtest
VC++库目录:
D:\Program Files\MATLAB\R2014a\bin\win64
D:\Program Files\MATLAB\R2014a\extern\lib
D:\Program Files\MATLAB\R2014a\extern\lib\win32\microsoft
D:\Program Files\MATLAB\R2014a\extern\lib\win32\lcc
D:\Program Files\MATLAB\R2014a\extern\lib\win64\microsoft
D:\Documents\MATLAB\Addtest
C/C++常规:附加包含目录
D:\Program Files\MATLAB\R2014a\extern\include
链接器:输入:附加依赖项
libeng.lib;libmat.lib;libmex.lib;libmx.lib;mclmcrrt.lib;mclmcr.lib;libAddtest.lib
链接器:常规,附加库目录
D:\Program Files\MATLAB\R2014a\extern\lib\win32\microsoft
之后将下列文件加入
代码
还在修改阶段,没有完成数组的计算功能,暂时只完成了数字的计算功能,加法器部分运用了鸡啄米的mfc教程,ID设置如下表:
名字 | ID |
---|---|
被加数(static text) | IDC_SUMMAND_STATIC |
被加数(edit control) | IDC_SUMMAND_EDIT |
被加数变量名 | m_editSummand |
加数(static text) | IDC_ADDEND_STATIC |
加数(edit control) | IDC_ADDEND_EDIT |
加数变量名 | m_editAddend |
和(static text) | IDC_SUM_STATIC |
和(edit control) | IDC_SUM_EDIT |
和变量名 | m_editSum |
运行结果:
// addtionDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "addtion.h"
#include "addtionDlg.h"
#include <cmath>
#include <iomanip>
#include "afxdialogex.h"
#include "targetver.h"
#include "engine.h" //使用Matlab引擎需要包含的头文件
#include "mclmcr.h"
#include "mclcppclass.h"
#include "vector"
#include "matrix.h"
#include "iostream"
#include <afxtempl.h> //mfc数组的
#include <string>
#include "libAddtest.h" // *.m文件生成
using namespace std;
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// 对话框数据
enum {
IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}</