Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反转PInvoke并创建完整的非托管C#程序_C#_C++_Pinvoke_Unmanaged - Fatal编程技术网

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

反转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++: -直接位于属性内部的setter和getter -接口 -foreach语句 -声明隐式强制转换运算符的可能性

其他小事情

<>我真的不知道,如果我不使用任何命名空间(甚至系统)

,如果在C语言中导入C++ DLL(特别是STD库)是可能的。 这个想法只是用你通常在C++中使用的一切来编写一个程序(没有CLR的任何东西),甚至Primtf,例如


谢谢你的回答

没有;这是不可能的。特别是,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),考虑到最近的更新,我更新了你的答案,可能与你的答案重复。听起来很棒!