在 WinCE 平台上绘图,哪种语言更快:MFC VC++ 或 C#
Posted
技术标签:
【中文标题】在 WinCE 平台上绘图,哪种语言更快:MFC VC++ 或 C#【英文标题】:For graphics drawing on WinCE platform, which language is faster: MFC VC++ or C# 【发布时间】:2010-09-07 10:56:29 【问题描述】:我需要在 WinCE 平台上绘制大量的实时图形。 为此,VC++ 和 C# 之间哪种语言更好以获得高性能? 此外,我们将要开发的图形应用程序应该链接到当前现有的 c++ 模块。如果我们选择c#写中间层需要很大的努力,那么我们不会选择它。也请考虑一下。
【问题讨论】:
如果您使用.NET,语言无关紧要。 【参考方案1】:在任何情况下,C# 都比 C++ 快。他们可能充其量是平等的。 由于您必须使用 C++ 库,因此 C++ 无疑是赢家 :-)
【讨论】:
并非总是如此。指令在 C++ 中可能运行得更快,但这并不意味着指令以更有效的方式编写!【参考方案2】:您可能希望直接调用 GDI,因此使用哪种语言并不重要,因为实际操作发生在 GDI dll 中。
但是,如果您还想与 C++ 库交互,则最好使用密切相关的 VC++。否则,您需要使用包装器在 C# 和 C++ 之间进行转换,这对于图形绘制等任务来说是开销。
请注意,我说的是 C#,而不是 .Net Framework 上的 C#。
【讨论】:
【参考方案3】:您似乎在回答自己的问题。说 c++ 是首选。
如果您选择 c#,那么是的,在开始扩展您的功能之前,您必须编写包装器并处理所有类型转换(以及所有测试)。
为什么你需要如此高的图形性能,以至于出现了 c++ vs c# 的问题?
如果您在 c# 上使用 c++ vs xna,您基本上是在考虑使用 directx 或 opengl。
由于您的代码库已经是 c++,因此您的经验似乎也将在那里,因此更改为 c# 不太可能在 fps 或开发时间方面产生任何性能提升。
c++ 总是有可能执行得更快......缺点是开发成本更高,因为它自动为您做的更少。 c# 的折衷方案是,如果您希望恢复这种性能,则必须在创建和处置大量对象的情况下真正提前计划。
【讨论】:
以上是关于在 WinCE 平台上绘图,哪种语言更快:MFC VC++ 或 C#的主要内容,如果未能解决你的问题,请参考以下文章
利用Microsoft VC++6.0 的MFC 的绘图工具实现简单图形的绘制
MFC给对话框设置统一风格背景图,wince 6.0应用程序