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 に答える