MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]关于C#与MATLAB混合编程的一点问题,请各位高手不吝赐教。 (https://www.labfans.com/bbs/showthread.php?t=2908)

kk20021055 2008-05-07 21:09

[求助]关于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:

wfr666 2008-05-13 23:08

看不太懂,可能很简单吧,呵呵,请楼主细心的讲解一下吧

moonykily 2008-06-17 11:40

没有using MathWorks.Matlab........
没有using你生成的dll的namespace
这些都需要手工加到工程的reference中并写上using的

popnose 2008-07-15 11:55

请问你的dll文件是怎么注册的 我为什么注册的时候出现问题:已加载,但是没有找到输入点呢?

moonykily 2008-07-21 01:35

[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讲的步骤,就能让程序正常跑起来


所有时间均为北京时间。现在的时间是 05:07

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.