Visual Studio中调用matlab生成的dll

转载 2015年07月09日 09:33:16
本文主要介绍了如何用matlab的mcc命令生成dll,然后再Visual Studio加载调用生成的dll。
    1). 打开matlab,新建m function,命名为testaddforcpp.m。这里我们简单写一个加法函数。代码后附。
    2). matlab中配置编译器。这里我们选择Visual Studio的C/C++编译器。
    3). 在matlab命令行输入mcc -l testaddforcpp.m,生成testaddforcpp.c,testaddforcpp.h, testaddforcpp.lib,testaddforcpp.dll等文件,这里我们主要用到后三个文件(.h .lib .dll)。
    4). 打开Visual Studio 2005,建立一个Win32 Project,项目名为test_matlab_4
Visual <wbr>Studio中调用matlab生成的dll
    5). 然后打开tool -> option -> Projects and Solutions -> VC++ Directories -> Include files 增加matlab头文件目录地址。"C:\Program Files\MATLAB\R2009b\extern\include"。由于最近经常使用matlab,就把头文件目录添加到VC设置中。如果只是偶尔使用matlab,可以把头文件目录加到project -> test_matlab_4 properties -> C++ -> General -> Additional Include Directories 中。(这里我们借用以前日志的图片。)
Visual <wbr>Studio中调用matlab生成的dll
    6). 然后打开tool -> option -> Projects and Solutions -> VC++ Directories -> Library files 增加matlab库文件目录地址。"C:\Program Files\MATLAB\R2009b\extern\lib\win32\microsoft"。如果只是偶尔使用matlab,可以把库文件目录加到project -> test_matlab_4 properties -> Linker -> General -> Additional Library Directories 中。(这里我们借用以前日志的图片。)
Visual <wbr>Studio中调用matlab生成的dll
    7). 把头文件testaddforcpp.h添加到test_matlab_4中。test_matlab_4.cpp代码后附。
Visual <wbr>Studio中调用matlab生成的dll
    8). 在Configuration Properties -> Linker -> General -> Additional Library Directories中添加C:\Documents and Settings\DKim\My Documents\MATLAB\MATLAB_C_CPP,这是包含testaddforcpp.lib的路径。
Visual <wbr>Studio中调用matlab生成的dll
    9). 在Configuration Properties -> Linker -> Input -> Additional Dependencies中添加mclmcrrt.lib,testaddforcpp.lib。
Visual <wbr>Studio中调用matlab生成的dll
    10). 编译,链接,生成test_matlab_4.exe文件。注意记得把testaddforcpp.dll放到生成的test_matlab_4.exe的文件夹中。否则exe文件找不到并且无法调用dll。

源代码附下:
testaddforcpp.m文件
function result = testaddforcpp(v1, v2)
result = v1 + v2;

test_matlab_4.cpp文件
#include "stdafx.h"
#include "testaddforcpp.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    if( !mclInitializeApplication(NULL,0))
    {
        cout << "Could not initialize the application." << endl;
        return 1;
    }
    if( !testaddforcppInitialize())
    {
        cout << "Could not initialize the function library." << endl;
        return 1;
    }
    mxArray *result;
    mxArray *arguments[2];
    arguments[0] = mxCreateDoubleScalar(2.0);
    arguments[1] = mxCreateDoubleScalar(3.0);
    mlxTestaddforcpp(1, &result, 2, arguments);
    double *output = mxGetPr(result);
    cout << "result is " << *output << endl;
    mxDestroyArray(result);
    mxDestroyArray(arguments[0]);
    mxDestroyArray(arguments[1]);
    testaddforcppTerminate();
    mclTerminateApplication();
    return 0;
}

C语言创建动态dll,并调用该dll(visual studio 2013环境下)

C语言创建动态dll,并调用该dll(visual studio 2013环境下)
  • u014175572
  • u014175572
  • 2016年02月24日 11:20
  • 9836

Visual Studio 写自己的动态链接库(DLL)

有些时候,我们想写自己的函数库以避免重复写代码,此文介绍如何使用Visual Studio编写自己的动态链接库。...
  • bendanban
  • bendanban
  • 2015年01月17日 19:51
  • 8595

Visual Studio 2010中的C++程序调用matlab程序代码 混合编程

本文目的:用matlab语言编写的程序函数可以通过参数接口在C++程序中调用,通过使用matlab生成dll形式,用C/C++程序调用!!! 环境配置: 1、环境及其所用工具:Window 7系统  ...
  • peng825223208
  • peng825223208
  • 2015年12月22日 15:35
  • 3686

在visual Studio上使用C#调用非托管C++生成的DLL文件(图文讲解)

背景       在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用。本篇文章将引导...
  • huyu107
  • huyu107
  • 2016年07月20日 15:05
  • 244

Visual Studio 2012生成被外部调用的dll文件

前两天需要写一个dll文件,提供给Java调用,就在网上搜了一些资料,最后搞出来了,就写在这里,怕自己以后会忘记。 1.新建项目,选择Win32项目,非控制台应用程序,然后点击确定,然后再点击下一步...
  • XINSUILE99
  • XINSUILE99
  • 2013年09月27日 23:57
  • 1221

【Visual Studio】使用 pexports 根据 VS 的 .dll 动态链接库生成 .lib 库文件

一、问题描述: 最近博主需要使用 8 路 USB 视频采集卡做二次开发,最后选择一款叫做“中维世纪”的 8 路 USB 视频采集卡 C301。但是,官网上仅提供了 1.0.0.4 版本的 SDK,使用...
  • u011408697
  • u011408697
  • 2015年03月02日 09:18
  • 1448

Visual Studio下建立并隐式调用自己的动态链接库dll

Visual Studio下建立并隐式调用自己的动态链接库dll   转载▼ 在工程或科研中,我们经常要使用自己编写的函数库。比较直接的方法是,我们可以在每个工程中把相应的头文件和源代码...
  • aaaa1234nimei
  • aaaa1234nimei
  • 2014年08月01日 09:52
  • 791

使用Visual Studio生成DLL文件

动态链接库的创建 源博客地址:http://www.cnblogs.com/fangyukuan/archive/2010/06/20/1761464.html 编写DLL时的函数与一般的...
  • Vonssss
  • Vonssss
  • 2015年01月08日 10:13
  • 407

Java中native方法入门与Visual Studio 2015 Community生成DLL文件

什么是Native方法? Native方法是Java程序与C程序的接口,能够实现Java程序调用C代码,提升Java程序的性能。 前提条件: 1. Java环境配置完成(百度一大堆请...
  • SkyeBeFreeman
  • SkyeBeFreeman
  • 2017年03月01日 22:21
  • 164

.net WinForm程序中调用Visual Studio IDE 中数据连接配置界面 (一个DLL搞定)

玩过直接调 数据库配置界面的一定对如下三个东西不陌生 Microsoft.Data.ConnectionUI.Dialog.dll -- 微软自带的数据连接配置界面库 Microsoft.Data...
  • Sliphades
  • Sliphades
  • 2012年12月24日 16:03
  • 2737
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Visual Studio中调用matlab生成的dll
举报原因:
原因补充:

(最多只允许输入30个字)