日期:2014-05-17  浏览次数:21187 次

请教高手,C#是否可以实现C++定义的接口,并被C++访问。
一个C++应用,定义了一些接口,比如
struct IViewFrame
{
public:
virtual HWND GetHwnd() const = 0;
virtual HWND SetClient(HWND hWnd) = 0;
};

是否可以用C#按照这个接口实现对象,然后被C++使用,最终目标是非托管
C++代码访问,可以用托管C++做一个中介。

有做过C++,C#交互的高手说说。多谢指教了。

------解决方案--------------------
非托管C++调用C# dll
------解决方案--------------------
http://blog.csdn.net/morewindows/article/details/8678431
http://blog.csdn.net/llddyy123wq/article/details/5620441
------解决方案--------------------
用C++实现这个接口(作为包装类),内部为对.net库的调用。

其实用.NET编写COM组件就是这么做的,只是标准的COM接口,编译器会自动产生包装类(Wrapper)。