0

我需要使用非托管应用程序中的 C# 类。假设我有以下 C# 类:

public class Managed
{
    public void Subcribe(int handler)
    {
        ....
    }
}

然后我创建以下 C++/CLI 类:

/// Header
class Mixed
{
public:
    void Subscribe(int handler);
private:
    class MixedImp;
    MixedImp* m_implementation;
}

/// CPP
ref class MixedImp
{
public:
    void Subscribe(int handler)
    {
        m_accessor->Subscribe(handler);
    }
private:
    Managed^ m_accessor;
}

Mixed::Subcribe(int handler)
{
    m_implementation->Subcribe(handler)
}

这样做时,我得到一个指向不完整类类型的指针是不允许的,所以我没有得到任何东西。我不是一个天生的非托管开发人员,所以如果问题有点愚蠢,请原谅我:\

4

1 回答 1

1
#include <vcclr.h>


class Mixed
{
public:
  void Subscribe(int handler)
  {
    m_accessor->Subscribe(handler);
  }
private:
  gcroot<Managed^> m_accessor;
};
于 2012-07-23T20:26:40.180 回答