Thursday, June 19, 2008

MFC host Winform and WPF

非托管的vc工程中部分文件使用.Net Framwork

http://www.cppblog.com/mzty/archive/2006/08/17/11334.html

C++/CLI与C#常用语法对比

http://www.cppblog.com/mzty/archive/2008/06/02/51878.html

Host Winform in MFC Dialog:

http://www.voidnish.com/Articles/ShowArticle.aspx?code=MfcWinFormsOff

http://msdn.microsoft.com/zh-cn/magazine/cc163605(en-us).aspx

Host WPF in MFC Dialog:

http://www.codeguru.com/cpp/cpp/cpp_managed/interop/article.php/c14589/

C#调用COM组件:
http://hi.baidu.com/buildingit/blog/item/0fa9d382c91f43bd6c8119a5.html


C#调用C++写的非托管的DLL中导出的函数
http://hi.baidu.com/buildingit/blog/item/5c89d625b673d36234a80fd8.html

所谓混合类是指CLI/C++中native的Class中可以包含CLR对象,CLR的class也可以包含Naitve的对象。
1)native的class中包含CLR对象,必须通过gcroot<>或auto_gcroot<>。

2)CLR中的class中包含native的对象,必须是指针,也可以使用高手写的CAutoNativePtr智能指针。


注意:C#中不能调用CLI/C++中的Native的class。同样Native C++中也不能调用CLI/C++中的Ref的class。

Native C++的project调用C#的DLL,一般有3中方法:
1)通过COM封装
2)通过CLI/C++的Wrapper
3) 在VS中可以直接修改NativeC++的project或是部分文件为使用CLR来调用C#的DLL

No comments: