VC++.NET可以用Managed/Unmanaged混合方式,所以可以用来编写两者之间的交互部分。用#pragma managed,#pragma unmanaged来区分。
编译之后unmanaged部分仍然是native code,不会成为IL,而managed部分则编译成MSIL。.NET EXE仍然符合PE格式,只是作了部分扩展。

解决方案 »

  1.   

    你是说如果用#pragma unmanaged则managed部分和unmanaged 的部分分开编译,如果用#pragma managed的话,则无论managed或unmanaged都编译成MSIL?
      

  2.   

    顾名思义,#pragma managed之后的代码都是managed,自然都会编译成MSIL,也就是说,你如果要写一个不通过__gc管理的类,这时候应该过不了编译,因为它们只能在#pragma unmanaged端出现。