如何调用从c#返回类的c ++函数

时间:2015-09-21 13:48:52

标签: c# c++ dll adapter dllimport

我有用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);

0 个答案:

没有答案