主要内容

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

此示例显示如何创建和配置简单的微软®Visual Studio®的动态库(DLL)MATLAB®编码器™.示例使用Microsoft Visual Studio2017.在其他版本中Microsoft Visual Studio,您可能会遇到不同的过程。

生成一个C动态库

  1. 创建一个MATLAB函数喷火

    函数C = foo(a)% # codegenC =√(a);结束
  2. 另存为foo.m例如,在本地可写文件夹中,C: \ dll_test

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

    对于本例,使用Microsoft 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项目

Microsoft Visual Studio,创建一个空项目:

  1. 选择文件>>项目

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

  3. 点击好吧

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

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

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

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

默认情况下,代码生成器在生成的C/ c++入口点函数的开头包含对initialize函数的调用。因此,不需要调用初始化函数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的工具链。默认情况下,Microsoft Visual Studio已配置为为Win32平台构建。必须将构建平台更改为x64,以匹配生成的64位DLL。在Microsoft 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 \ foo而且matlabroot\走读生\包括其他包含目录.用分号分隔条目。

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

  4. 配置属性>链接器>一般,添加文件夹C: \ dll_test \ codegen \ dll \ foo附加图书馆目录

生成并运行可执行文件

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

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

  3. 运行可执行文件。验证输出是否如您所料。

相关的话题