记VS2010与MATLAB混合编程遇到的一些问题

来源:互联网 发布:金山数据恢复账号 编辑:程序博客网 时间:2024/05/12 04:49

一、首先使用的是win7 ×64系统 VS2010软件和MATLAB2014b

        问题:MATLAB2014b进行打包时,总是打包失败。

        原因:我使用的这个MATLAB版本破解不完全,可以进一步破解然后尝试。

二、重新安装了MATLAB2015a是个破解完全的

          打包的问题成功解决了。写了小的测试代码,但是在使用打包的类创建对象时,显示如下错误

       首先查看是否是目标平台设置不匹配,见下面第6条  。     

三、具体打包过程和解决问题如下


1. 安装好MATLAB后,还需要找到安装路径下的(我的是D:\matlab2015a\toolbox\compiler\deploy\win64)中的MCRInstaller.exe进行安装,安装之后     环境变量时自动添加的,可以查看一下,如果没有可以手动添加MCRInstaller.exe的安装路径。
2. 安装之后还需要在dos环境注册regsvr32 mwcomutil.dll(未尝试不注册是否可以)
3. 利用MATLAB2015b建立函数,保存目录尽量不要放在桌面以及路径不要使用中文
  function result = mypower(x,y)  %UNTITLED Summary of this function goes here  %   Detailed explanation goes here  result=power(x,y);  end
4. 在matlab的主界面找到   ----->  APPS-----> Library Compiler ,打包dll文件

    

   注意c#编程需要选择.NET Assembly    然后添加刚刚写的mypower.m文件,点击Package(绿色对勾)进行打包操作。

    
    打包结束会产生一个mypower文件夹,里面有for_redistribution,for_redistribution_files_only和for_testing子文件夹,我们需要的mypower.dll就在  for_testing文件夹中。

5. VS2010新建一个控制台的工程,在工程的引用上右键---->添加引用
    选择浏览,将刚刚生成的 for_testing文件夹中的mypower.dll和D:\matlab2015a\toolbox\dotnetbuilder\bin\win64\v2.0安装目录下的MWArray.dll添加进去
    

6. 右键点击自己创建的c#工程,选择属性,如果是x64系统,需要修改如下(本人就是在此处出现错误),修改为目标平台x64,否则会出现,调用         MATLAB函数时参数一直不匹配。
     
7. 添加引用   using MathWorks.MATLAB.NET.Arrays;  using MathWorks.MATLAB.NET.Utility;using mypower;
    具体代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using MathWorks.MATLAB.NET.Arrays;using mypower;namespace Conpower{    class Program    {        static void Main(string[] args)        {            MWArray x = 2, y = 4, result = 0;            Classpower po = new Classpower();            result = po.mypower(x, y);            Console.WriteLine("c#和MATLAB混合编程测试函数 power(" + x+ ","+ y +")= "+result);            Console.ReadKey();        }    }}
8. 结果
    
0 0
原创粉丝点击