反转PInvoke并创建完整的非托管C#程序
我知道这是一个奇怪的问题,但想法很简单:我更喜欢C#语法而不是C++: -直接位于属性内部的setter和getter -接口 -foreach语句 -声明隐式强制转换运算符的可能性 其他小事情 <>我真的不知道,如果我不使用任何命名空间(甚至系统),如果在C语言中导入C++ DLL(特别是STD库)是可能的。 这个想法只是用你通常在C++中使用的一切来编写一个程序(没有CLR的任何东西),甚至Primtf,例如反转PInvoke并创建完整的非托管C#程序,c#,c++,pinvoke,unmanaged,C#,C++,Pinvoke,Unmanaged,我知道这是一个奇怪的问题,但想法很简单:我更喜欢C#语法而不是C++: -直接位于属性内部的setter和getter -接口 -foreach语句 -声明隐式强制转换运算符的可能性 其他小事情 我真的不知道,如果我不使用任何命名空间(甚至系统),如果在C语言中导入C++ DLL(特别是STD库)是可能的。 这个想法只是用你通常在C++中使用的一切来编写一个程序(没有CLR的任何东西),甚至Primtf,例如 谢谢你的回答没有;这是不可能的。特别是,C++模板不支持C++模板。< P>不,不可能
谢谢你的回答没有;这是不可能的。特别是,C++模板不支持C++模板。< P>不,不可能简单地将现有C或C++文件导入到C项目中。它们是非常不同的语言,不能在源代码级别混合使用
混合使用C#和C++/C应用程序的方法是在PInvoke或COM互操作级别。这是通过复制C#中的签名来实现的,并允许C#编译器确定本机类型的二进制布局,以便在语言之间封送 现在有了类似的东西
将C++编译成类似C++的本地机器代码。您将继续受益于.NET Framework的生产效率和熟悉程度以及本机代码的出色性能
它仅适用于Windows应用商店应用程序(桌面应用程序将来可能会出现): 桌面应用程序是我们战略中非常重要的一部分。最初,我们主要关注带有.NET本机的Windows应用商店应用程序。从长远来看,我们将继续改进所有.NET应用程序的本机编译 及 应用程序将作为完全自包含的本机编译代码(当.NET Native进入生产时)部署在最终用户设备上,并且不会依赖目标设备/计算机上的.NET Framework嗯,c有泛型,但它们不一样。。。因此,没有办法使用c#语法来创建类似于游戏的东西(是的,我知道XNA,但我想写一些完全脱离CLR的东西,使用directx或opengl),考虑到最近的更新,我更新了你的答案,可能与你的答案重复。听起来很棒!