03.01.2013 Views

Chapter 1

Chapter 1

Chapter 1

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Appendix 4: Emulator Reference<br />

Overview<br />

As we've seen, the emulator is a vital tool in the Symbian OS software development<br />

process. For non-privileged code, the emulator is almost 100 percent source compatible with<br />

real Symbian OS phones. Many functions that used privileged code on other systems use<br />

servers on Symbian OS, facilitating source code compatibility through the provision of<br />

machine-independent APIs. This means that for the system as a whole, source compatibility<br />

is very high indeed.<br />

The emulator uses Win32 APIs and services to emulate real-machine hardware and<br />

Symbian OS services, including:<br />

� a Windows window to emulate the Symbian OS screen and surrounding machine<br />

fascia,<br />

� the Windows mouse to emulate the Symbian OS pointer,<br />

� the Windows keyboard to emulate the Symbian OS keyboard, plus some control<br />

functions,<br />

� directories in the Windows file system to emulate standard Symbian OS drives,<br />

� PC sound card to emulate Symbian OS sound codec,<br />

� PC communications ports to emulate Symbian OS communications ports,<br />

� Win32 threads to emulate Symbian OS threads,<br />

� a single Win32 process to emulate a single Symbian OS process containing all<br />

Symbian OS threads: this is an important difference between the emulator and a real<br />

Symbian OS phone, which I'll return to later in this appendix,<br />

� a single .exe to include Symbian OS startup code: this is epoc.exe in the case of<br />

any GUI program or a custom .exe for any text console program,<br />

� Win32 DLLs to emulate Symbian OS DLLs, with Win32 DLL search order used instead<br />

of Symbian OS search order,<br />

� Win32 DLLs to emulate Symbian OS server .exes, with Win32 DLL search order used<br />

to find the Win32 DLL,<br />

� the debug window, if active, for debug prints generated by RDebug::Print() (see<br />

e32svr.h).<br />

For C++ development, the emulator's (Figure A4.1) debug build is typically used. Debug<br />

builds contain symbolic information and debugging statements, and the debug emulator<br />

contains useful debugging support such as many debugging keys.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!