主要内容

使用动态库中微软Visual Studio项目

这个例子显示了如何创建和配置一个简单的微软®Visual Studio®项目生成的调用动态库(DLL)MATLAB®编码器™。本例使用微软Visual Studio2017年。在其他版本的微软Visual Studio,你可能会遇到不同的过程。

生成C动态库

  1. 创建一个MATLAB函数喷火

    函数c = foo ()% # codegenc = sqrt ();结束
  2. 将其保存为foo.m例如,在当地可写的文件夹C: \ dll_test

  3. 使用相同版本的相同的编译器来生成你的DLL使用来构建微软Visual Studio项目。否则,您可能会遇到链接错误。

    对于这个示例,使用微软Visual Studio2017年的编译器。选择代码生成器使用的编译器,输入墨西哥人设置在命令行中。有关更多信息,请参见万博1manbetx支持和兼容的编译器

  4. 为MATLAB函数生成一个DLL喷火。的arg游戏选项指定的输入一个是一个真正的双。

    codegen配置:dll喷火arg游戏{0}报告

    在Microsoft Windows®系统中,codegen生成一个C动态库,foo.dll在默认文件夹万博1manbetx,支持文件,C: \ dll_test \ codegen \ dll \ foo

创建一个微软Visual Studio项目

微软Visual Studio创建一个空的项目:

  1. 选择文件>>项目

  2. 选择安装>Visual c++>一般并选择空项目。输入一个项目名称。

  3. 点击好吧

创建一个主。c文件,使用图书馆

写一个c文件使用foo.dll。的c函数必须:

  • 包括生成的头文件,它包含库函数的函数原型。

  • 后调用终止函数调用库函数的最后一次。

默认情况下,代码生成器包括开始时调用初始化函数生成的C / c++的入口点函数。所以,你不需要调用初始化函数c。看到使用生成的初始化和终止功能

创建文件:

  1. 解决方案资源管理器,右键单击源文件文件夹并选择添加>新项目

  2. 选择c++文件(. cpp)。在的名字字段中,输入c

  3. 点击添加

  4. 输入代码:

    # include " foo。h foo_terminate # include。h”# include < stdio。h > int main () {printf (" % f \ n”, foo (26));foo_terminate ();获取字符();返回0;}

配置平台

MATLAB编码器自动使用配置工具链来构建一个64位的DLL。默认情况下,微软Visual Studio配置为Win32平台的构建。你必须改变构建平台x64匹配生成的64位的DLL。在微软Visual Studio:

  1. 选择构建>配置管理器

  2. 积极的解决方案平台x64

如果你想建立一个32位的DLL在64位平台上,您必须使用一个32位的工具链的定义。看到64位的Windows®平台上构建32位DLL使用MSVC工具链

指定外部依赖

建立您的项目时,编译器需要相关的头文件。链接器需要生成的. lib文件。

  1. 突出显示您的项目的解决方案资源管理器,然后选择项目>属性

  2. 代码生成器产生类型的文件rtwtypes.h,其中包括该文件tmwtypes.h。这个文件存储在matlabroot\走读生\包括,在那里matlabrootMATLAB安装的根目录。返回根目录,输入matlabroot在命令窗口中。

    配置属性>C / c++>一般,添加文件夹C: \ dll_test \ codegen \ dll \ foomatlabroot\走读生\包括其他包括目录。单独的,并以分号分隔。

  3. 配置属性>链接器>输入,添加foo.lib附加依赖项

  4. 配置属性>链接器>一般,添加文件夹C: \ dll_test \ codegen \ dll \ foo额外的库目录

构建和运行可执行文件

  1. 构建可执行。选择构建>构建解决方案

  2. 使DLL的可执行文件。要么复制foo.dll包含可执行文件的文件夹或添加文件夹包含foo.dll你的路径。

  3. 运行可执行文件。验证显示为您期望的输出。

相关的话题