使用 ManWrap 库在本机 C++ 代码中调用.NET
本文讨论:
- 不借助 /clr,从本机 C++ 代码中使用托管类;
- GCHandle,gcroot 以及创建混合模式的 DLLs;
- .NET 框架中的正则表达式;
本文使用下列技术:C++ 和 .NET 框架
C++ 托管扩展使得自由地混合本机代码和托管代码成为可能,即便是在相同的模块中也能如此。是啊!这的确是一件好事情。但是用 /clr 编译可能会带来你不想要的结果。比如强制多线程并屏蔽了一些有用的运行时检查。妨碍 MFC 的 DEBUG_NEW,并且某些 .NET Framework 类有可能与你的名字空间冲突。此外,如果你的应用程序使用的是老版本的编译器,不支持 /clr 开关怎么办?有没有什么方法能不借助于托管扩展而进入框架?答案是肯定的。