- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于COM技术的MATLAB和VC实现混编
COM组件的语言无关性:
COM规范的定义不依赖于特定的语言。例如:用Java开发的COM组件对象,可以在C++语言中被使用。
MATLAB COM编译器用法
MATLAB COM编译器通过将M程序转为C/C++源程序,然后再调用外部C++编译器来实现编译、生成COM组件。在使用COM编译器之前,需要保证计算机安装了MATLAB编译器和C++编译器。
(1)运行MATLAB COM编译器,需要输入命令
mbuild -setup
之后会出现如下提示:
Welcome to mbuild -setup. This utility will help you set up a default compiler. For a list of supported compilers, see /support/compilers/R2012b/win32.html Please choose your compiler for building shared libraries or COM components:
Would you like mbuild to locate installed compilers [y]/n? (是否允许mbuild加载已经安装的编译器)
Note:直接按Enter键即可
之后会列出计算机上安装的所有编译器:
Select a compiler:
[1] Lcc-win32 C 2.4.1 in D:\MATLAB\INSTAL~1\sys\lcc
[2] Microsoft Visual C++ 2010 in d:\ProgramFiles\MicrosoftVisualStudio10.0
[0] None
Note:由于我安装的是VS2010,所以直接在MATLAB命令窗口输入2.
之后会让确定所选择的编译器是否正确:
Please verify your choices:
Compiler: Microsoft Visual C++ 2010
Location: d:\ProgramFiles\MicrosoftVisualStudio10.0
Are these correct [y]/n?
Note:直接按Enter键即可
执行成功后会看到以下提示
Trying to update options file: C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB\R2012b\compopts.bat
From template: D:\MATLAB\INSTAL~1\bin\win32\mbuildopts\msvc100compp.bat
Done . . .
用MATLAB生成COM组件
MATLAB COM编译器是一个图形界面编译器。
先写好MATLAB Code,M文件必须是函数。
例如:这是一个绘图函数
function [ ] = pls_plot( Yresiduals )
figure();
stem(Yresiduals)
xlabel(Observation);
ylabel(Residual);
end
启动MATLAB COM编译器,在MATLAB命令窗口输入deploytool
启动后,出现如下的图形界面编译器,点击Add Classes按钮。
点击Add files向工程中添加M文件,如果已经把M文件所在的目录设置为了MATLAB工作目录,那么点击Add files按钮就会直接打开当前目录。或者从Current Folder面板中直接拖拽到工程中。
Note:因为在我的C++程序中,我只用了三个函数,所以只放了三个函数文件进去。
设置工程编译选项和工程封装选项
这里需要注意一点!!!
Note:Toolboxes On Path设置页,主要用来指出编译时需要搜索哪些Toolbox.因为MATLAB的库函数是以Toolbox来归类的。这里选择的Toolbox越少,编译的速度就越快,也会减少最后生成文件的空间。我写程序的时候并不能确定知道我调用的库函数到底归属哪一个Toolbox因此所有Toolbox我都选上了。
编译工程
Note:这个过程可能会比较慢!
发布COM文件
创建组件
命令窗口输入: mcc -l pls.m
Note:此过程可能会很慢。
Note:执行完成后,会多出一些文件,其中红色框的三个文件是我们需要的。
同样的方法,对其他几个需要用到的函数文件进行转换
C++调用COM组件
新建一个MFC工程
把之前生成的几个文件,复制到当前工作目录,并添加进来
添加
文档评论(0)