2023-12-19 01:39来源:m.sf1369.com作者:宇宇
C++ 和java相比,只有标准的容器和算法,它的标准里没有网络,GUI以及应用框架这些内容,因此需要第三方的库来支持,如果你了解MFC,你就用知道qt和c++的关系其实 与 MFC和C++的关系一样,qt有完整的应用框架,GUI,网络等内容。
脚本语言多是跨平台的,如Python,Perl,Ruby,PHP,lua
在虚拟机上运行的语言也是跨平台的,如Java
编译成系统可执行文件的编译型语言,如 C、C++、Pascal(Delph) 语言本身是跨平台的,但库的实现与系统底层相关,一般不是跨平台的。有一些跨平台的库的定义和实现,如 ANSI C, POSIX C,STL, QT, Wxwidget 等等
首先,如果在C#代码的各处直接调用C++的DLL会不方便;
其次,各自的语音拥有自身的风格与特性,如你举的例子,使用C#封装后,将更加易于不太熟悉原C++DLL的开发者调用,且将C++的DLL封装起来了,有利用程序的结构;
1.C/C++:Android通过NDK;iOS的objc本来就是c语言的扩展,也能兼容;WinPhone的c#也能调用c/c++写的dll;然后开源的跨平台2d游戏引擎cocos2d-x就是用C++写的;
2.C#:除了楼上说的Xamarin这个东西,.net的开源实现mono项目也可以实现跨平台,比较著名的案例就是跨平台游戏引擎unity,它不仅支持c#,还支持js和boo;
3.Javascript:我知道的基于js的移动跨平台项目就有phoneGap和jQueryMobile,你甚至一句JAVA代码都不用写;
4.HTML5:一般平台都有WebView,直接跑,虽然性能等方面和native应用有差距,但webapp绝对有它自己的用武之地;然后还有跨平台游戏引擎cocos2d-html5;
5.ActionScript:flash这东西虽然早晚得过时,但国内还是有不少游戏公司在用,通过工具也能打包到移动平台发布。
接口实现,就好比java能运行在linux,windows,mac。。一样,底层封装的实现不同~但是规范了所有的借口。