您的位置:首页 > 编程语言 > MATLAB

C#与matlab的混合编程

2016-07-25 17:42 183 查看
其实跟java 那个差不多,核心思想都是把matlab的程序生成dll,然后将这个dll放到我们需要的C#工程debug的文件夹中.

利用MATLAB的comtool工具可以方便地将m文件转化为COM组件,生成的COM组件只要在客户机上注册后即可像使用ActivX控件一样方便被调用,不同的编程语言可以对其实例化,通过传参数的方式加以复用。此方法的具体步骤如下:   

第一步:在MATLAB中生成COM组件  

  ①将Matlab生成的m文件保存名为test.m。在Matlab命令窗口中输入命令:comtool(新版本的换成了deploytool),打开COM Builder窗口。  

  ②在该窗口中新建一个名为component的工程,注意是要选最后面的.net环境,并在该工程中新建一个类(名字随便但是不要跟文件名重复),并添加文件test.m。    

  ③点击Build → COM object命令,就可以生成COM组件,其版本号为component 1.0,该例中组件包含一个test类,向外提供一个接口函数为jisuan( )。在component工程的文件夹distrib下可以找到一个component_1_0.dll文件,这个文件即是所有遵循COM组件技术规范的高级语言都能够调用的COM组件。    

第二步:在.NET中注册COM组件  

  在C#调用该COM组件之前,需先对其进行注册。在.NET开发平台中点击:Project → Add Reference„,在弹出的对话框中选择COM选项卡,选中刚生成的COM组件component 1.0,点击OK按钮即完成了组件的注册。    第三步:在C#程序中调用COM组件  

  ①将component_1_0.dll文件拷贝到C#的工程文件夹下的Debug文件夹下,在.cs文件中添加命名空间:using component;  

  ②在程序体中添加如下代码,将COM类实例化:  

  component.testClass Csharptest = new testClass();//实例化COM组件中的test类    Csharptest.jisuan( );//调用test类中的接口函数jisuan( )          

    这个方法步骤简单,调用方便,而且生成的COM组件只要在机器上注册后,便可跨语言甚至跨机器平台得以复用,软件的重用度好,编程效率高。同时生成的COM组件易于修改、扩展性好,利于系统的升级。在系统交付使用后,若需对原算法进行修改或更新,只需将修改后的COM组件覆盖原有的同名文件即可;而且系统运行速度也较快,因为应用程序仅仅在需要进行运算的时候才装载所需的组件库,这样减少了系统启动时间和内存占用。

    还有dll文件模式的方法,但是这个方法比较繁琐而且容易出错==所以就略过不表,以后就com组件完成就好~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息