1
我是C++/CLI的新手,我想知道如何使用虚拟方法来包装非托管C++类来管理和使用C#中的类?C++/CLI:如何使用虚拟方法包装非托管类来管理和使用C#中的类?
不受管理的C++类:
class IProgression
{
public:
virtual ~IProgression(void) {}
virtual void sendProgression(int amount, int present) = 0;
};
sendProgression方法被用来发送进度信息到C#层。所以这是回调。
我有哪里这个进程回调设置其他非托管C++类:
virtual void setProgression(IProgression * pIProgression) = 0;
所以我需要从C#设置回调接口,以非托管C++通过C++/CLI并获得进展的信息返回到从非托管C C#++通过C++/CLI。
有人可以提供意见如何实现这一点,因为我有点困惑与此?
非常感谢您快速回答wolle。我只是想知道为什么Wrapper类不需要在这种情况下被定义为ref class?我实现了你的建议,并将IManagedProgression实现到C#端。我仍然很难将该接口封装到Wrapper对象。我该怎么做?我快到了。 – tonsten 2012-03-15 13:21:17
可能管理方应该使用事件,而不是接口。但这也会起作用。 – 2012-03-15 20:16:19
如何从C#端正确使用这个建议? – tonsten 2012-03-16 09:44:35