反转PInvoke并创建一个完整的非托管C#程序

我知道这是一个奇怪的问题但是这个想法很简单:我更喜欢C#语法而不是C ++:-Setters和getter直接在属性-interfaces -foreach语句中 – 可谓声明隐式转换运算符

其他小东西……

我真的不知道的是,如果我不使用任何命名空间(甚至是系统),是否可以在C#中导入c ++ dll(特别是std库)

这个想法只是使用你通常在C ++中使用的所有东西编写一个程序(CLR都没有),甚至是printf例如

谢谢你的回答

现在有一些接近这一点

.NET Native将C#编译为执行类似C ++的本机机器代码。 您将继续受益于.NET Framework的生产力和熟悉程度以及本机代码的卓越性能。

它仅适用于Windowsapp store应用(未来可能会出现桌面应用):

桌面应用程序是我们战略中非常重要的一部分。 最初,我们专注于使用.NET Native的Windowsapp store应用。 从长远来看,我们将继续改进所有.NET应用程序的本机编译。

应用程序将作为完全自包含的本机编译代码(当.NET Native进入生产时)部署在最终用户设备上,并且不会在目标设备/机器上依赖.NET Framework

不可能简单地将现有的C或C ++文件导入C#项目。 它们是非常不同的语言,不能在源级别混合使用。

混合C#和C ++ / C应用程序的方法是在PInvoke或COM Interop级别。 这通过复制C#中的签名并允许C#编译器确定本机类型的二进制布局以便在语言之间进行编组来实现。

没有; 这不是直接可能的。 特别是,C#不支持C ++模板。