关于matlab与c#混合编程产生的移植问题
2007-01-29 23:19
357 查看
这个问题曾经差点让我的毕业设计的程序没办法拿出去演示。其实这也是个很现实的问题,你做好的程序如果不能在别人的机子上运行,那么它有什么应用价值呢?说来也惭愧,我以前编写过很多的程序都出现过移植性难的问题。我想一个很主要的原因是在一个程序开发者使用的机子上,往往是具备了非常完整的软件运行环境,但程序运行时有可能需要调用外部的程序或函数,这些平时我们可能不会去注意。也就造成软件发布时移植性问题产生的根源了。
matlab与c#混合编程的程序,如果要运行于客户的机子,必须在客户端的机子上设置好系统变量,同时需要安装.netframwork与MCR。
.netframwork大家都很熟悉了,任何一个.net设计出来的程序,都不能脱离.netframwork而独立运行,正如用vc++设计的程序离不开MFC一样。这个是必须安装的。独立的.netframwork组件包可以直接去微软的网站上去找。
MCR是由matlab提供的,它和.netframwork的性质相同,任何一个运行matlab的电脑上,都必须安装该组件。该组件在matlab2006a版本中已经分离开而成为一个独立的可运行的.exe文件。它一般是放在//MATLAB/R2006a/toolbox/compiler/deploy/win32文件夹中,名为MCRInstaller.exe。该组件其实是将//MATLAB/R2006a/bin/win32文件夹下的大部分(注意不是全部).dll文件打包而已。这也是为什么有些程序在安装了MCR的机子上仍然不能运行的原因,不过对绝大多数的程序来说,一个MCR就足够了。比较保险的办法是,自行将//MATLAB/R2006a/bin/win32下的所有文件打包成一个安装文件,安装完后设置好系统变量(也就是在class变量下添加上面文件的路径)。
为了让用户安装程序时不需要太多的操作,我们可以把上面2个组件和应用程序一起打包,然后写个脚本检测客户端的机子是否已经安装了上面的2个组件,如果没有,则提示用户安装。检测脚本的写法很多地方都可以找到。这里就不多介绍了。
matlab与c#混合编程的程序,如果要运行于客户的机子,必须在客户端的机子上设置好系统变量,同时需要安装.netframwork与MCR。
.netframwork大家都很熟悉了,任何一个.net设计出来的程序,都不能脱离.netframwork而独立运行,正如用vc++设计的程序离不开MFC一样。这个是必须安装的。独立的.netframwork组件包可以直接去微软的网站上去找。
MCR是由matlab提供的,它和.netframwork的性质相同,任何一个运行matlab的电脑上,都必须安装该组件。该组件在matlab2006a版本中已经分离开而成为一个独立的可运行的.exe文件。它一般是放在//MATLAB/R2006a/toolbox/compiler/deploy/win32文件夹中,名为MCRInstaller.exe。该组件其实是将//MATLAB/R2006a/bin/win32文件夹下的大部分(注意不是全部).dll文件打包而已。这也是为什么有些程序在安装了MCR的机子上仍然不能运行的原因,不过对绝大多数的程序来说,一个MCR就足够了。比较保险的办法是,自行将//MATLAB/R2006a/bin/win32下的所有文件打包成一个安装文件,安装完后设置好系统变量(也就是在class变量下添加上面文件的路径)。
为了让用户安装程序时不需要太多的操作,我们可以把上面2个组件和应用程序一起打包,然后写个脚本检测客户端的机子是否已经安装了上面的2个组件,如果没有,则提示用户安装。检测脚本的写法很多地方都可以找到。这里就不多介绍了。
相关文章推荐
- 关于MATLAB和c#混合编程以及如何打包的
- matlab与C#混合编程
- Matlab与VC混合MEX编程之关于mexFunction篇
- Matlab与C#混合编程
- 关于c#和matlab联合编程
- C#与matlab混合编程
- 【转】Matlab和C#混合编程
- matlab 引擎实现混合编程问题。
- 关于困扰我很多次的matlab编程小问题
- C#与MATLAB混合编程实例
- 小记Matlab与C#混合编程
- 【转载!】关于C#的RawSocket编程的问题
- MATLAB和VS2010的混合编程需要注意的问题
- [置顶] MATLAB和c#混合编程实现心电图显示软件
- Matlab与C#混合编程
- Matlab和C#混合编程之数组传值
- [C#]关于TcpClient编程数据接收问题
- C#与MATLAB混合编程
- 关于简单的c#编程问题
- C#与Matlab混合编程入门教程一:几种混合编程的方法