我从去年10月开始观看微软构建会议,我注意到他们宣布要构建新的Metro风格应用程序,开发人员可以用C#编写本机代码.这怎么可能?我只是好奇.是不是将C#设计(作为CLI标准的一部分)首先编译为中间字节代码然后在虚拟机上运行?如何在虚拟机上运行的东西称为“本机代码”? 最佳答案 始终可以从托管代码调用本机代码.通常,在某些时候与窗口交互的任何.net应用程序都将控制权移交给本机组件.
从历史上看,要手动调用本机代码,我们将使用PInvoke(平台调用) – 它允许托管代码调用DLL中实现的非托管函数.
现在最新的是Windows Runtime,基本上是一个增强的基于COM的API.你可以在这里阅读它 – http://en.wikipedia.org/wiki/Windows_Runtime – 它只是让这个过程更容易/更少听到.
编辑 – 很明显,演示文稿不是c#可以编译为本机代码.这仍然是不可能的.他们正在宣传winrt,因为它提供了一种新的(更清洁)机制,用于在c#中包含对本机代码的调用.