2012-07-23 57 views
0

我需要從非託管應用程序使用C#類。說我有下面的C#類:如何從C++/CLI使用PIMPL使用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) 
} 

做這件事時,我得到一個指向不完全類類型是不允許的,所以我沒有得到什麼。我不是一個天然的非託管開發人員,所以原諒我,如果這個問題有點愚蠢:\

回答

1
#include <vcclr.h> 


class Mixed 
{ 
public: 
    void Subscribe(int handler) 
    { 
    m_accessor->Subscribe(handler); 
    } 
private: 
    gcroot<Managed^> m_accessor; 
};