managed, unmanaged

在修改一个bug的过程中,发现问题出在这个里面。以前没有使用过这个,并不了解其具体的用途,所以查阅了msdn下。

简单说,这个宏就是用来控制函数是用managed还是unmanaged来编译。具体说就是

#ifdef _MANAGED

#pragma managed(push, off) //关闭managed

#endif

…..

在这里面的所以function都会调用native的平台来编译与运行

…..

#ifdef _MANAGED

#pragma managed(pop) //打开managed

#endif

 

需要注意的是只有/clr编译选项使用时,这种用法才成立,否则编译器讲忽略managed和unmanaged标记。

至于为什么要这么用,我想是为了提高编译和运行效率吧,毕竟把不需要managed。

MSDN:http://msdn.microsoft.com/en-us/library/0adb9zxe(v=vs.80).aspx

posted @ 2013-01-05 11:25  谷满仓  阅读(483)  评论(0编辑  收藏  举报