繁体   English   中英

在Visual Studio C#2013中导入matlab .dll导致问题

[英]importing matlab .dll in visual studio c# 2013 causing issue

我试图使用具有两个简单数字的简单添加功能导出使用Matlab R2013a(8.1.0.604)的.dll(.Net程序集),并尝试在Visual Studio 2013中为C#使用此.dll文件。 我已经添加了对Matlabtest.dll和MWArray.dll的.dll文件的引用。 现在,当我尝试使类的对象“正在添加”(来自Matlabtest.dll的类的名称)时,visual studio停止工作且没有任何错误,并且无法使类的对象成为现实。 请给我建议一些参考代码等解决方案。我缺少的步骤需要建议和帮助。

这是我的matlab函数

function output = adding( a,b )
output = a + b;
end

这是我在单击按钮时的C#代码

using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;


using MatlabTest;

namespace TestingMatlab
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private MatlabTest.Adding obj;

        public MainWindow()
        {
            InitializeComponent();

        }

        private void btn_sum_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                MWArray a;
                MWArray b;

                a = (MWArray)txt_num1.Text;
                b = (MWArray)txt_num2.Text;

                Adding obj = new Adding();

                MWArray output = obj.adding((MWArray)a, (MWArray)b);

                Console.WriteLine(output.ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }                     
        }
    }
}

因此,在奋斗之后,我提出了一个解决方案,以便其他人可以得到帮助。 问题实际上出在MCR初始化程序上,要解决该问题, “无法初始化MCR实例” ,我按照以下步骤操作:

  1. 在Visual Studio中将目标框架更改为.NET Framework 3.5

  2. 在Matlab中使用deploytool导出.dll时,转到设置,然后取消选中将CTF存档嵌入到应用程序中。

  3. 现在,在导出.dll时,您将拥有一个projectname.CTF文件,将该文件复制到Visual Studio调试目录,例如C:\\ Program \\ VS \\ Debug \\ projectname.CTF
  4. 检查是否已使用x86或x64体系结构导出.dll,然后在Visual Studio中相应地选择“平台目标”。

遵循上述步骤可以解决我的问题... :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM