登录论坛

查看完整版本 : 关于Matlab读取VC++编写的DLL


llnn2002
2009-01-10, 01:24
我想用VC2005以上版本编写一个DLL,然后在Matlab7.1中调用该DLL里的函数。

我的方法如下:

在VC++中建立一个Class Library工程,然后添加自己的类和函数,代码如下:
// VCMC.h
#pragma once

using namespace System;

namespace VCMC {

public ref class MeasureData
{
private:
array <double>^ data;
public:
MeasureData(void);
array <double>^ getdata(void);
int tt(int i1, int i2);
};
}

-----------------------------------------------------------------------------------------

//VCMC.cpp
#include "stdafx.h"
#include "VCMC.h"

using namespace VCMC;

MeasureData::MeasureData(void)
{
int i;
data = gcnew array <double>(500);

for(i=1;i <=500;i++)
{
data[i-1]=i;
}
}

array <double>^ MeasureData::getdata(void)
{
return data;
}

int MeasureData::tt(int i1, int i2)
{
return (i1+i2);
}

编译能通过,在Matlab里也能用Loadlibrary成功装载VCMC.dll,但是用libfunctions查看该DLL里函数,但是返回值说
该DLL里没有任何函数和类。请各位帮忙看看,问题到底在哪里?

谢谢!

liuzhenw198382
2009-02-23, 15:28
我也是同样的问题,麻烦Math 版主帮忙看一下!真的很感谢!
No methods for class lib.***** or no class lib.*****