类中使用动态库微软Visual Studio项目
此示例显示如何创建和配置简单的微软®Visual Studio®的动态库(DLL)MATLAB®编码器™.示例使用Microsoft Visual Studio2017.在其他版本中Microsoft Visual Studio,您可能会遇到不同的过程。
生成一个C动态库
创建一个MATLAB函数
喷火
.函数C = foo(a)% # codegenC =√(a);结束
另存为
foo.m
例如,在本地可写文件夹中,C: \ dll_test
.使用相同编译器的相同版本来生成用于构建您的DLLMicrosoft Visual Studio项目。否则,您可能会遇到链接错误。
对于本例,使用Microsoft Visual Studio2017年的编译器。要选择代码生成器使用的编译器,请输入
墨西哥人设置
在命令行。有关更多信息,请参见万博1manbetx支持和兼容的编译器.为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,创建一个空项目:
选择文件>新>项目.
选择安装>Visual c++>一般并选择空项目.输入项目名称。
点击好吧.
创建一个使用库的main.c文件
写一个c
使用foo.dll
.的c
函数必须:
包含生成的头文件,其中包含库函数的函数原型。
在最后一次调用库函数后调用terminate函数。
默认情况下,代码生成器在生成的C/ c++入口点函数的开头包含对initialize函数的调用。因此,不需要调用初始化函数c
.看到使用生成的初始化和终止函数.
创建文件:
从解决方案资源管理器,右键单击源文件文件夹并选择添加>新项目
选择c++文件(.cpp).在的名字字段中,输入
c
.点击添加.
输入代码:
#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:
选择构建>配置管理器.
集主动解决方案平台来x64.
如果要在64位平台上构建32位DLL,则必须使用32位工具链定义。看到使用MSVC工具链在64位Windows平台上构建32位DLL.
指定外部依赖项
要构建项目,编译器需要相关的头文件。链接器需要生成的. lib
文件。
中突出显示项目解决方案资源管理器,然后选择项目>属性.
代码生成器在文件中生成类型
rtwtypes.h
,其中包括该文件tmwtypes.h
.该文件存储在matlabroot\走读生\包括
,在那里matlabroot
是MATLAB安装的根目录。返回根目录,输入matlabroot
在命令窗口。下配置属性>C / c++>一般,添加文件夹
C: \ dll_test \ codegen \ dll \ foo
而且matlabroot\走读生\包括
来其他包含目录.用分号分隔条目。下配置属性>链接器>输入,添加
foo.lib
来附加依赖项.下配置属性>链接器>一般,添加文件夹
C: \ dll_test \ codegen \ dll \ foo
来附加图书馆目录.
生成并运行可执行文件
构建可执行文件。选择构建>构建解决方案.
使DLL可被可执行文件访问。要么复制
foo.dll
到包含可执行文件的文件夹或添加包含foo.dll
去你的路。运行可执行文件。验证输出是否如您所料。