C# 在Windows Mobile上使用C和C或C++的区别

C# 在Windows Mobile上使用C和C或C++的区别,c#,c++,c,windows-mobile,C#,C++,C,Windows Mobile,我不熟悉windows mobile开发。我对windows mobile开发有如下疑问 < 1】C和C++的主要区别是选择语言以促进发展。不是语法上的 2我应该选择哪种语言进行开发,为什么 3如果我将C作为一个移动开发,那么我可以访问C上的所有API吗 桌面。1太模糊,无法回答 2 C,因为它有一个受良好支持的framework.NET Compact版本 3。不是所有API都在.NET../P>< P>的紧凑版本中可用,除了语法之外,主要的区别是C是被管理的,C++是C++的,你使用的是托

我不熟悉windows mobile开发。我对windows mobile开发有如下疑问

< 1】C和C++的主要区别是选择语言以促进发展。不是语法上的

2我应该选择哪种语言进行开发,为什么

3如果我将C作为一个移动开发,那么我可以访问C上的所有API吗 桌面。

1太模糊,无法回答

2 C,因为它有一个受良好支持的framework.NET Compact版本


3。不是所有API都在.NET../P>< P>的紧凑版本中可用,除了语法之外,主要的区别是C是被管理的,C++是C++的,你使用的是托管C++。p>


< OO languagesnot C. > C++允许你自己做内存管理,而C是托管代码,这可能是好的或坏的,所以垃圾收集大部分是由运行时为你完成的。如果使用C,您将能够访问针对CLR的所有其他托管程序集

如果您只为Windows Mobile开发应用程序,请选择任何.Net Compact Framework支持的语言


您也可以使用C++非托管,但这一切都取决于您正在开发的移动应用程序的类型

您的里程数可能会有所不同,但几年前,我们曾尝试为Windows Mobile开发一款C应用程序,但性能糟糕得令人难以置信。我说的是,我的对话框需要10秒钟才会出现问题。我相信它已经变得更好了,但潜在的问题仍然存在:这些设备的资源限制比台式PC更严格,而.NET带来的性能损失更可能对您产生明显的影响。
所以,如果你的应用程序对性能不敏感,那么就使用C,但如果你有任何性能问题,根据我的经验,C/.NET不会在Windows Mobile上解决它。C++是下一个最明智的选择。

< P> 1编写的应用程序在本地代码中运行得更快。此外,本机应用程序中的内存占用更小

这取决于你正在写的应用程序。如果它不需要顶级性能,也不需要很多本机功能,那么应该对代码进行管理。如果你需要很大的灵活性,选择native

3 No..Net Compact Framework有一部分桌面API


在过去,我被建议在为WM开发时避免使用.net框架,除非绝对必要

这显然是由于.net framework加载了相当多的dll,因此占用了大量内存。显然,如果有其他.net应用程序运行共享程序集,这在一定程度上会有所缓解,从而导致相当低的电源使用率

此外,在你无法控制的时间段等情况下发生的抖动和家务事——如果你移动大量内存,这可能会成为一个问题——在诸如pda之类的低功耗设备上,这种持续的后台混乱可能会变得明显

然而,在.net中编写代码要容易得多,速度也快得多

如果:

你认为“快赢”比认真有效的代码更重要。 你不在乎电池寿命或电池寿命 你的应用程序对性能不敏感,或者 你不知道如何用本地语言编码 您不关心开放标准和法规遵从性 那就选择.net吧

.net compact framework是.net桌面版本的一个子集,因此框架的某些功能和方面不可用

如果你刚刚起步,我推荐.net——如果你正在开发商业解决方案等,我推荐使用c/c++

在开发简单桌面或Web应用程序时,经常推荐P>C,而直接处理硬件的C++则被用于需要更高效率的应用程序。 我会说C。鉴于您是Windows mobile开发的新手,C将更容易实现。另外,C是由Windows开发的,因此它专门针对Windows应用程序

不可以。您将只有一部分用于桌面API的库