문제

I am planing to develop on Symbian systems but I am not familiar with it. I know (might be) the most popular way of developing on Symbian is Symbian C++, and I also heard of Qt. What's the difference between them? If I want my app run on most of the Symbian systems, which should I choose? Can someone give me some overall advices?

Thank you~

도움이 되었습니까?

해결책

Symbian C++ is the dialect of C++ in which the operating system is written, all the way from the kernel up to the application framework. It differs from standard C++ in a number of ways, some of which are listed here:

  • Exceptions are not used; Symbian uses its own method of stack unwinding called 'leaves'. The main reason for this is that the C++ standard was still in development when Symbian was created, and exceptions were at that time not widely supported by compilers.
  • Because of the lack of support for exceptions, management of dynamically allocated memory uses a proprietary mechanism called the cleanup stack.
  • Although a port of the STL is now available for Symbian, this is a recent development, so the OS has its own utility classes for strings, arrays, hashes etc.

Taken together, these can make learning Symbian C++ pretty difficult, even for seasoned C++ programmers. The cleanup stack and string classes (known as descriptors) in particular are usually seen to add quite a lot of overhead to Symbian C++ development.

As with any operating system, in addition to needing to know the native language, you also need to know your way around the libraries which are relevant to your area of development. Symbian has a very rich set of libraries covering large amounts of functionality (threading, IPC, graphics, multimedia, networking, location, messaging, PIM, telephony etc.) Once you get used to the Symbian C++ idioms, these libraries are generally very powerful and offer a feature set at least equal to other platforms. One notable exception is the UI library, known as Avkon, which is now pretty dated when compared to corresponding frameworks on other platforms.

Qt is intended to address some of the issues listed above which tend to put people off native development on Symbian OS. Specifically, it enables a much more modern style of C++ programming, and includes a very advanced set of graphics / UI libraries. Today, Qt is available for installation on most recent Symbian devices. Looking forward, it will form the foundation of a completely new application framework, which will be introduced in the S^4 version of the platform (expected to be in devices shipping from 2011).

One thing I should point out is that, at this point, Qt does not cover all of the functionality of the native libraries. From the list above, while Qt offers abstractions of threads, IPC, graphics, multimedia and networking, its core libraries do not include location, messaging or PIM functionality. So, while you can use Qt to write (for example) an FTP client, a drawing program or a media player, you cannot use it to write a messaging client. Because Qt is C++, you can mix it with native Symbian C++ (dropping down to platform APIs to access messaging for example), but this is somewhat complex.

This functionality gap is being addressed by a project called Qt Mobility, which will introduce Qt libraries covering areas such as location, messaging and PIM.

In summary, if you are new to Symbian, Qt is the application development environment to learn, and doing so has the additional benefit that you can also develop Qt applications on other platforms (since it is a cross-platform toolkit).

다른 팁

인라인 멤버 함수를 정의 할 때 멤버 함수의 정의를 키워드 인라인으로 앞에 붙이고 헤더 파일에 정의를 넣어야합니다.

함수 인라인을 기본적으로 선언 할 때 컴파일러에게 (가능한 경우) 함수를 호출하는 곳이면 함수의 내용을 사용하여 함수의 내용으로 함수를 호출하기위한 코드를 교체합니다.그 아이디어는 기능 본체가 작고 기능을 호출하는 것입니다.

이 작업을 수행 할 수 있습니다.이 기능을 호출하는 코드를 컴파일하는 동안 정의를 볼 수 있어야합니다. 본질적으로 기능을 호출하는 코드가 헤더 파일에만 액세스 할 수 있기 때문에 정의가 헤더에 상주해야합니다..

잘 읽는 것 :

[9.7] 컴파일러에게 어떻게 알려주 는가?멤버 함수 인라인을 만드십시오.

There is a comparison of 7 available toolkits -Symbian C++, Qt, Open C\C++, Python, Widgets, Java ME, Flash Lite- here: Hitch Hikers Guide to the Runtime Space

SharePoint 감사 로그 을 사용 하여이 작업을 수행 할 수 있습니다.목록 및 라이브러리 또는 전체 사이트에 대한 감사 기능을 활성화합니다.다음 링크는 동일하게 도움이됩니다.

감사 1

"Nofollow"> 감사 2

감사 로그 보고서보기 사용자 정의 항목 쓰기

이벤트

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top