Win 程序员如何过度到Symbian程序员?

http://tech.ddvip.com   2008年06月15日    社区交流

内容摘要:本文讨论了当一个典型的Windows C++程序员初次接触Symbian操作系统时可能遇到的问题。我们开发过三个成功版本Symbian操作系统的经验使我们十分清楚在这个不算丰富稳定的环境中工作什么才是困难的。

  4.串。

  串,啊,Symbian中的串!毫无疑问Symbian中对串的实现是经过深思熟虑的,强壮的和经济的。同样无疑的是这代表着一种富贵病。串是通过Symbian称之为“描述符”的机制来实现的,跟以下几个类有关:TDesC、TBufCBase、TDes、TPtrC、TBufC、HBufC、TBuf和TPtr.这还不包括由TLitC操纵的直接量,它严格来说还算不上是个描述符。我至今也还没有提到Unicode,虽然它显然很受注意。这些类可以使你精确的使用最少量的内存来存储不同类型的串,同时还允许它们“干净”的互相操作。但是每次都要考虑到底使用哪一个实在不是一件有趣的事情,这种情况是无法避免的,因为不同的API有不同的参数或返回值。

  这里有个小例子把一个名字转化为样本消息:_LIT(KBoilerplate, "Hello there, %S");TPtrC name = GetPointerIntoNameDescriptorWithoutAllocatingAnyMemory();TPtr finishedProduct = HBufC::NewLC(KBoilerplate()。Length() + name.Length())->Des();finishedProduct.Format(KBoilerplate(), &name);// 这段代码还缺少了一行,在下文会添加并讨论。

  根本没有哪个类提供类似于MFC串或是Java串——完全动态的串。Java中对于String和StringBuffer的划分对我们在此讨论的问题几乎没有任何价值。Symbian所做的值得赞扬的事就是他们把这些的文档做得很好。但是你真正需要的文档却不会频繁去读它。Symbian在开发时考虑的是那些资源有限的机器,不可否认对于某些应用方面和平台来说这是必不可少的。但是就目前来说,一个Symbian操作系统的C++程序员会感觉像那些早期的IBM PC程序员,他们在对付的是Intel的分段结构,然而68000芯片又大又单一的寻址空间使得苹果看起来是个更酷的选择。

责编:豆豆技术应用

正在加载评论...