我有用c ++编写的函数,我想在另一个c#项目中使用这些函数。它适用于几个函数,但在我返回类的函数中,它似乎工作(我在两边都有相同的类)。 我创建了一个适配器,它返回一个名为CProfile的类:
class CProfile
{
public double timeStamp;
public int dimL, dimR;
};
extern "C" __declspec(dllexport) CProfile getProfileAdapter(int nInt)
{
std::cout << "get profile" << std::endl;
Profile profile=R->getProfile(nInt);
CProfile cProfile;
std::cout << "get time stamp" << std::endl;
cProfile.timeStamp=profile.timeStamp;
std::cout << "get dimL" << std::endl;
cProfile.dimL=profile.leftProfile.size();
std::cout << "get dimR" << std::endl;
cProfile.dimR=profile.rightProfile.size();
return cProfile;
}
在c#项目中我将这个函数称为:
class CProfile
{
public double timeStamp;
public int dimL, dimR;
};
static void Main(string[] args)
{
CProfile c = new CProfile();
c = getProfileAdapter(0);
}
[DllImport("c:\\Ran\\pmcppdllran.dll")]
static extern CProfile getProfileAdapter(int nInt);