主要内容

使用动态库微软Visual Studio项目

这个例子展示了如何创建和配置一个简单的微软®Visual Studio®项目调用由MATLAB®编码器™.本例使用微软Visual Studio2017.在其他版本中微软Visual Studio,您可能会遇到不同的过程。

生成一个C动态库

  1. 创建MATLAB函数喷火

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

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

    在本例中,使用微软Visual Studio2017年的编译器。要选择代码生成器使用的编译器,请输入墨西哥人设置在命令行。有关更多信息,请参见金宝app支持和兼容编译器

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

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

    在Microsoft Windows®系统中,codegen生成一个C动态库,foo.dll,以及默认文金宝app件夹中的支持文件,C: \ dll_test \ codegen \ dll \ foo

创建一个微软Visual Studio项目

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

  1. 选择文件>>项目

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

  3. 点击好吧

创建一个使用库的main.c文件

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

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

  • 在最后一次调用库函数之后调用terminate函数。

默认情况下,代码生成器在生成的C/ c++入口点函数的开头包含对初始化函数的调用。因此,您不需要调用初始化函数c.看到使用生成的初始化和终止函数

创建文件。

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

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

  3. 点击添加

  4. 输入代码:

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

配置平台

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

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

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

如果希望在64位平台上构建32位DLL,则必须使用32位工具链定义。看到使用MSVC工具链在64位Windows®平台上构建32位DLL

指定外部依赖

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

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

  2. 代码生成器在文件中生成类型rtwtypes.h,其中包括该文件tmwtypes.h.该文件存储在matlabroot\走读生\包括,在那里matlabroot是MATLAB安装的根目录。要返回根目录,输入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. 运行可执行文件。验证输出是否如您所期望的那样出现。

相关的话题