C/C++LI或C#,用于在Windows上创建快速,现代和响应迅速的GUI

目前,我被分为两种语言.我几乎要完成当前应用程序的编程工作,这需要非常快.它可以在多种载荷条件下计算任何种类的中空玻璃结构.我只是不知道用C/C++LI编写它是否是正确的选择.例如,在互联网上,我什至从未读过名称“...

目前,我被分为两种语言.我几乎要完成当前应用程序的编程工作,这需要非常快.它可以在多种载荷条件下计算任何种类的中空玻璃结构.

我只是不知道用C/C++LI编写它是否是正确的选择.例如,在互联网上,我什至从未读过名称“ C/C++LI”,但每个人都建议学习C#.

C/C++LI的真正缺点是什么?从我的阅读中可以看出,它注定要在未来几年内弃用.这是真的?如果有的话,它们真的很糟糕,真的有必要切换到C#吗?

目前反对C#的唯一一件事是我拥有需要访问的C代码,并且由于安全问题和黑客防护,我无法创建.Dll. (该程序将非常昂贵)

为了编写在Windows上运行的快速GUI(还有3D动画,多核甚至图形核处理),我还有什么其他机会?

解决方法:

为了寻求更高的性能,我已将大量C#/ WPF UI移植到C/C++LI(与WinRT相关的版本已发展到C++/CX).重要的是要记住,它不是C,而是C语言的一组托管扩展,以支持.NET.我喜欢低级的UI编码,并且经常使用WPF编写大多数控件,这些控件源自DrawingVisual或UIElement,具体取决于用户输入的要求.

我个人不喜欢“扩展名”(例如使用帽子^),发现它非常不自然.我没有看到C#带来什么大的收获(新发布的4.6似乎做出了进一步的改进).我个人认为C/C++LI将很快成为过去.我对C/C++LI的不满绝对不是一个孤独的人,像Kenny Kerr这样的人在整个问题上的表现都是big impact.实际上,我预计MS将完全采用他的库和Sunset C/C++LI.

转储整个项目后,并迁移到纯C / Direct2D.我完全低估了开发时间,但是却发现了巨大的收获.这不是一条容易的路,因为您将编写自己的控件(文本框和所有控件).但是现在有Win2D(Direct2D的包装器)提供了这些控件,并且看起来是一个很好的解决方案(但是当我开始时尚不可用,并且我现在不打算进行更改).

我现在不能对自己的决定感到满意,但是在此过程中我肯定会存在一些疑问,并且不一定会建议您这样做,除非您的心愿长期坚持下去.否则,请坚持您所知道的.

编辑:顺便说一下,任何说C#/ WPF的人都与C / DirectX一样快,无论是拒绝还是妄想. VS2015中包含一些优化程序改进功能,您会为它的小体积和性能而感到惊讶.消除.NET依赖关系将极大地减轻体重,同时对于打算进行反向工程产品开发的人来说也非常困难.

编辑2:如果您目前不了解C#/ WPF,那么当然要避免使用它,尤其是因为您已有C代码(这就是我赞成Dave回答的原因).如果性能至关重要,那么现在正是进入DirectX 12(MS技术可能的最佳性能)的绝佳时机.祝你好运,听起来像是一个有趣的项目.

编辑3:如上所述(关于肯尼·克尔),here是最近的公告,可能会开始新时代,以及日落的C/C++LI和C/C++X.

本文标题为:C/C++LI或C#,用于在Windows上创建快速,现代和响应迅速的GUI