Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.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
C# windowsmobile开发:C++;还是C--哪一个更好?为什么?_C#_C++_Windows Mobile - Fatal编程技术网

C# windowsmobile开发:C++;还是C--哪一个更好?为什么?

C# windowsmobile开发:C++;还是C--哪一个更好?为什么?,c#,c++,windows-mobile,C#,C++,Windows Mobile,在进行Windows Mobile开发时,我应该使用哪种语言?是C++还是C++?为什么一个比另一个好?这取决于你在编码什么 通过C++调用P/Unjk,可以对OS进行本地调用,但是使用本地C++可能更容易。您还需要C++来使用一些未被紧凑框架包装的硬件。 大多数硬件(GPS、摄像头等)都可以通过CF获得。如果您使用的是Win Mobile 6.x设备,那么使用C#可能会更好。除了硬件,Pocket Office(POOM)对象模型也可用于C#,因此您可以与它集成 值得注意的是,对Windows

在进行Windows Mobile开发时,我应该使用哪种语言?是C++还是C++?为什么一个比另一个好?

这取决于你在编码什么

通过C++调用P/Unjk,可以对OS进行本地调用,但是使用本地C++可能更容易。您还需要C++来使用一些未被紧凑框架包装的硬件。 大多数硬件(GPS、摄像头等)都可以通过CF获得。如果您使用的是Win Mobile 6.x设备,那么使用C#可能会更好。除了硬件,Pocket Office(POOM)对象模型也可用于C#,因此您可以与它集成

值得注意的是,对WindowsPhone7的大多数引用都涉及托管代码和Silverlight的可能性。如果混合使用Silverlight,则必须使用C#编写代码

除非你的应用程序性能很高或内存非常有限,否则请使用C#或VB.NET


斯科特

这主要取决于任务

c++有以下优点/缺点:

  • 直接访问资源、更快的程序
  • 可以访问非常深的操作系统部件,高级应用程序不需要
  • 更难开发,需要开发人员管理资源
C#:

  • 在虚拟机(CLR)下运行,这就是速度较慢的原因
  • 更快更简单的应用程序开发
  • 丰富的内置图书馆
视情况而定

至少呈现一个特定的用例。并可能使用SO搜索?:)

编辑:
显然,其他人的反应更快,给出了更清晰的答案。尽管如此,我还是建议阅读上面的SO主题。

没有正确的答案,因为没有一刀切的“更好”定义。如果你知道C++,并且已经有很多C++代码资产,C++肯定看起来很吸引人。如果你知道C++,而不是C++,那么C肯定看起来很吸引人。 C++应用程序的加载速度更快,但对于许多应用程序来说,这并不重要。C#应用程序当然可以写得更快,但它们也没有确定性。我甚至从来没有尝试过用C++来进行UI,也不会考虑在C++中做数据库访问。不过,我不会用C#或shell扩展编写驱动程序

一般来说,我提供的大多数解决方案都是这两种方案的混合。C#有它的长处。它编写速度快,调试和单元测试更容易,很难(尽管并非不可能)创建泄漏,对于某些操作(如数据访问或XML解析),它更容易

C++也有它的优势,比如执行速度(尽管C#可以在很多事情上运行得同样快)、决定论和插入需要本机入口点的东西的能力


那么我的答案呢?你需要了解这两个方面,并且很可能使用这两个方面来编写你的解决方案。您最终使用的每个api的百分比取决于您的最终目标。

根据我的经验,从c#开始更容易,如果compact framework提供的api对您来说足够,那么您就可以了

另一方面,如果您的项目有点复杂,或者如果您想做一些不在紧凑框架中的事情,那么您可能需要在C++中创建一个帮助器。即使在这种情况下,你也可以在C语言中做你的主程序,在C++中编程助手DLL。 <>如果你直接进入C++程序,你可能会受益于你的原始性能优于C,这是很好的,如果你在做游戏。 但是你也会受到windows mobile操作系统的限制。例如每个进程最多32MB,或者所有.dll共享相同的地址空间


因此,最终这实际上取决于你打算做什么以及你的经验。

正如一方不一样,Silverlight并不一定意味着C。例如,CE 60R3有一个完整的“Silverlight”XAML引擎,它只能从C++中使用。这是正确的——Silverlight可以用VB.NET编码,但它不能用C++来实现,因此,在这种情况下,用C语言来解决问题。WinCE CE 6 .x的Silverlight实现是相当酷的,但Win Mobile是CE的另一种构建,目前还没有Silverlight实现。我的观点是,我们不知道WinPoice的Silverlight是否有它,将被管理或基于C++。我们不能打消它可能是C++的原因,因为已经有一个先例已经被设置为C++,Silverlight是在C++中完成的。从少量可用的信息看来,本地Windows Phone 7系列的开发将是非常有限的,Silverlight和XNA将是主要的表示层。用托管的.NET代码来完成繁重的工作。@ctacke:据我所知,WP7与Windows CE无关。与Windows Mobile相比,它更像是一款Zune。你可能还会发现,在更多的移动项目中,坚持使用C#是很有用的——Mono Touch()可以让你用C#编写iPhone应用程序,而且他们正计划推出一款针对Android手机的应用程序(称为Mono Droid),尽管Mono Droid尚未发布。与C++相比,使用C语言更容易,在OnguleC和java中可能是这样。也许在理论世界中,CF中的大量WiMo代码非常简洁,使用微软的WielsSobile命名空间或P/Coell调用CORDELL。任何类型的重用的可用性都非常低,UI元素也有很大的不同。由于这些原因,我不会说C++在这些平台上比C++更便携。智能手机的核心服务肯定是独一无二的,但我仍然认为你有更好的机会在三个平台上使用C 3代码。例如,iPhone上特定于用户界面的东西是通过C#包装的。当然,这些包装器不同于Windows Phone GUI API,但我认为使用C#比学习iPhone的Obj-C和Android的Java更容易。算法不一定受平台限制。