![]() |
[求助]关于C#与MATLAB混合编程的一点问题,请各位高手不吝赐教。
[B]关于C#与MATLAB混合编程的一点问题,请各位高手不吝赐教[/B]。
在程序运行之前,我已经将M文件生成了DLL,并且已经注册,在VISUAL STUDIO 中已经注册了该DLL。 在VS 中我的代码是:(用的控制台) 问题是老是提示:Function 'plus' not defined for variables of class 'int32'. M文件为:求两数的和 function result=add(left,right) result=left + right; C#代码: using System; using System.Collections.Generic; using System.Text; namespace MATLAB混合编程2 { class Program { static void Main(string[] args) { try { addnum.addnumClass f = new addnum.addnumClass(); //注册的M文件所生产的DLL object result; int left = 3; int right = 5; result = new Object(); f.add(1, ref result, left, right); int answer = (int)result; Console.WriteLine(answer); } catch (Exception e) { Console.WriteLine(e.Message); } } } } :redface: :redface: :redface: :redface: :redface: |
看不太懂,可能很简单吧,呵呵,请楼主细心的讲解一下吧
|
没有using MathWorks.Matlab........
没有using你生成的dll的namespace 这些都需要手工加到工程的reference中并写上using的 |
请问你的dll文件是怎么注册的 我为什么注册的时候出现问题:已加载,但是没有找到输入点呢?
|
[QUOTE=popnose;13794]请问你的dll文件是怎么注册的 我为什么注册的时候出现问题:已加载,但是没有找到输入点呢?[/QUOTE]
我的做法是: 1. 在matlab中用matlab builder把.m文件编译为.net assembly 2. 在vs中添加路径,使得mathworks这个namespace可以被reference到,以便使用matlab中的数组类 3. 在工程中添加到mathworks和第1步生成的assembly的reference 然后就可以用了 你的问题描述得不是很清楚 我觉得其实你查一查matlab的帮助文件,按照getting started讲的步骤,就能让程序正常跑起来 |
所有时间均为北京时间。现在的时间是 12:24。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.