Welcome to ErranLi's Blog!

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  106 Posts :: 1 Stories :: 97 Comments :: 0 Trackbacks

常用链接

留言簿(12)

搜索

  •  

积分与排名

  • 积分 - 163952
  • 排名 - 150

最新评论

阅读排行榜

matlab混合编程向导(vc,vb,.net...)

作者:dayouluo(.Net学生)  来源:博客园  发布时间:2005-01-19 14:25  阅读:7318 次  原文链接   [收藏]  

发信人: xxhn (小湖南), 信区: MathTools      
标  题: matlab混合编程向导(vc,vb,.net...)
发信站: BBS 水木清华站 (Fri May 23 09:32:12 2003), 转信

一.matlab与vc混编
1.通过mcc将matlab的m文件转化为cpp,c文件或dll供vc调用:
   这方面的实现推荐精华区Zosco和ljw总结的方法(x-6-1-4-3-1和2)
   vc的设置请参看精华区x-6-1-4-3-5,通过这种设置可以调用c math library和c++
   math library,C++ mathlib的pdf在精华区x-6-1-10里
2.通过matlab的combuilder将m文件做成com组件,供vc调用
   参看精华区x-6-1-5
3.通过matcom:
   这个mathworks公司已经不在出新版本了,而且他的功能可能用第1和第2种方法代替
   推荐使用前两种方式,matcom的使用精华区有一部分,从x-6-1-4下找

二.matlab与vb混编
1.mathworks公司专为vb开发了一个com组件:matrixvb,里面有大量的数学函数.
   这个组件需要另装,请在安装盘上或网上下载,注册码参看精华区x-6-1-3-8
   装好这个组件后,他自带了两个pdf文件,用法及其能用的函数全在上面,推荐阅读
   这两个pdf文件,精华区的位置是x-6-1-4-6
2.通过matlab的combuilder将m文件做成com组件,供vb调用
   参看精华区x-6-1-5

三.matlab与.net混编
   在6.1版本以前一直没有这方面的讨论,用mcc编成dll或cpp,c文件应该可以,由于
   .net调用com组件很方便,推荐使用通过matlab的combuilder将m文件做成com组件,供
   .net调用,参看精华区x-6-1-5

四.试试通过matlab的combuilder做成com组件的方式实现混编,这也是mathworks公司
推荐的方法,他不受语言和编译器的局限,相信高版本的matlab将在这方面有更大的改进
这方面的介绍参看精华区x-6-1-5

五.其他的语言或编译器与matlab混编
    精华区x-6-1-4里有一些相关的介绍,不全,还请用过的大侠总结这方面的内容。
如果此编译器能调用com组件,那么也能通过matlab的combuilder将m文件做成com组件,
供他们调用的方法

六.matlab调用外部dll(动态链接库等)
参看精华区x-6-1-4-9

七.混编的一些常见问题FAQ
1.mcc编译m文件出现这样的错误提示(例):
Error: File "psf3" is a script M-file and cannot be compiled with the
current Compiler.
matlab complier不能编译script M-file,请将script M-file转成function m-file
最简单的一个转法是:如果你的m文件叫a.m,在开头加上一句: function a
推荐精华区x-6-1-4-12文章
2.mxArray,mwArray转double或其他的类型
参看精华区x-6-1-4-3-7和8
3.在vc下调用toolbox中的有些函数会出现问题
参看精华区x-6-1-4-3-9,这种问题还没有很好的解决方法
4.lib /def:libmmfile.def /out:libmmfile.lib /machine:ix86是什么意思?
这是调用VC的编译器lib.exe,从def文件导出lib文件,以实现对dll的调用
这是dos下的命令行。matlab的高版本已经不需要这么用了,它的lib文件全在
<matlabroot>/extern/lib/win32里,根据各个编译器的不同,此文件夹里还有分类的
文件夹。
5.我在Vc中选择新建一个matlab工程,可是最后一步确定的时候总是弹出一个窗口说 
MSDEV.EXE应用程序错误."0x528aa3003指令” 
引用的“0x52880000"内存.该内存不能为”written“?
这种情况是matlab的addin不能用,没有太好的解决方法,所以只能改用mcc
来代替addin了
6.matlab下生成的exe文件,怎么拿到没有matlab的机器上运行?
参看精华区x-6-1-8

--
 come on,baby!


※ 修改:·xxhn 于 May 26 20:03:05 修改本文·[FROM:  202.113.40.222]
※ 修改:·xxhn 于 Jun 13 19:07:26 修改本文·[FROM:  202.113.35.162]
※ 修改:·xxhn 于 Jun 20 09:37:24 修改本文·[FROM:  202.113.38.250]
※ 修改:·xxhn 于 Jun 28 12:48:42 修改本文·[FROM:    202.113.41.0]
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.113.35.191]

posted on 2010-07-10 18:00 erran 阅读(521) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理