这个例子展示了如何创建和配置一个简单的微软®Visual Studio®项目调用由MATLAB®编码器™.本例使用微软Visual Studio2017.在其他版本中微软Visual Studio,您可能会遇到不同的过程。
创建MATLAB函数喷火
.
函数c = foo ()% # codegenc = sqrt ();结束
将其保存为foo.m
例如,在本地可写文件夹中,C: \ dll_test
.
使用相同编译器的相同版本来生成用于构建的DLL微软Visual Studio项目。否则,您可能会遇到链接错误。
在本例中,使用微软Visual Studio2017年的编译器。要选择代码生成器使用的编译器,请输入墨西哥人设置
在命令行。有关更多信息,请参见金宝app支持和兼容编译器.
为MATLAB函数生成一个DLL喷火
.的arg游戏
选项指定输入一个
是一个真正的替身。
codegen配置:dll喷火arg游戏{0}报告
在Microsoft Windows®系统中,codegen
生成一个C动态库,foo.dll
,以及默认文金宝app件夹中的支持文件,C: \ dll_test \ codegen \ dll \ foo
.
在微软Visual Studio,创建一个空项目:
选择文件>新>项目.
选择安装>Visual c++>一般并选择空项目.输入项目名称。
点击好吧.
写一个c
文件使用foo.dll
.的c
函数必须:
包括生成的头文件,其中包含库函数的函数原型。
在最后一次调用库函数之后调用terminate函数。
默认情况下,代码生成器在生成的C/ c++入口点函数的开头包含对初始化函数的调用。因此,您不需要调用初始化函数c
.看到使用生成的初始化和终止函数.
创建文件。
从解决方案资源管理器,右键单击源文件文件夹并选择添加>新项目
选择c++文件(. cpp).在的名字字段中,输入c
.
点击添加.
输入代码:
#include "foo.h" #include "foo_terminate.h" #includeint main() {printf("%f\n", foo(26));foo_terminate ();获取字符();返回0;}
MATLAB编码器自动使用配置为构建64位DLL的工具链。默认情况下,微软Visual Studio配置为为Win32平台构建。您必须将构建平台更改为x64,以匹配生成的64位DLL。在微软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
你的路径。
运行可执行文件。验证输出是否如您所期望的那样出现。