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里没有任何函数和类。请各位帮忙看看,问题到底在哪里?
谢谢!
我的方法如下:
在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里没有任何函数和类。请各位帮忙看看,问题到底在哪里?
谢谢!