Powrót na stronę główną www.And3mD.prv.pl

Menu:
Strona Początkowa
Co Nowego?
BeOS/OpenBeOS
Linux
Podstawy C/C++
C FAQ
Biblioteki stand. C (GNU libc)
Programowanie w Linuxie
Programowanie w BeOSie
GLib
GTK
OpenGL
SDL
Moje Programy
Download
Linki
Pozdrowienia
Autor




Część 1 - Pierwszy program



Jak już pisałem w artykule na temat architektury systemu [Link], API BeOSa w przeważającej większości zostało napisane w C++. Zostało także podzielone na logiczne części (tzw "Software Kits") odpowiadające za różne zadania.

Praktycznie każda aplikacja korzysta z Application Kit czyli modułu, którego podstawowym zadaniem jest stworzenie obiektu aplikacji i połączenie go z serwerem aplikacji tzw. app_server-em.

Tworzenie projektu :

BeIDE dokładniej omówiłem w tekście "BeIDE - szybki start" [Link], w tym miejscu tylko krótkie przypomnienie:

Po uruchomieniu BeIDE wybieramy z menu File polecenie New Project, po czym jesteśmy proszeni o:
  • wybranie rodzaju projektu, w naszym wypadku wybieramy BeApp
  • zapisanie pliku projektu, w naszym przypadku plik projektu nazwiemy PierwszaApp.proj
Po wykonaniu tych operacji wracamy do okna edycyjnego i zapisujemy pusty plik pod nazwą main.cpp w katalogu naszego projektu, zaznaczając opcję Add To Project.
Teraz jesteśmy gotowi napisać swój pierwszy program dla BeOSa.

Tworzenie aplikacji :

Na początku tworzenia programu musimy stworzyć obiekt aplikacji. Klasa definiująca ten obiekt dostępna jest w Applicaton Kit należy więc dodać plik nagłówkowy Application.h lub bardziej ogólny AppKit.h:

#include <Application.h>

Obiekt aplikacji reprezentuje klasa BApplication, ale zwykle korzystamy z dziedziczenia, czyli nie tworzymy obiektu typu BApplication lecz tworzymy klasę opartą na BApplication. Postępujemy tak ponieważ klasa BApplication zawiera funkcje wirtualne, które będziemy chcieli później zastąpić.
Naszą klasę obiektu aplikacji nazwiemy PierwszaApp :


class PierwszaApp : public BApplication {
public :
PierwszaApp():BApplication("application/pierwszaapp")
    {
    }

};


Klasa PierwszaApp wywołuje konstruktor klasy BApplication z jednym parametrem. Tym parametrem jest sygnatura aplikacji. Sygnatura aplikacji pozwala na jednoznaczne określenie naszej aplikacji przez system operacyjny. Sygnatura ta musi zaczynać się tekstem application/ i jest nadpisywana przez sygnaturę podaną w pliku zasobów stworzonym w aplikacji FileTypes (jeżeli taki plik wogóle dodamy, o plikach zasobów dowiemy się więcej później).

Po stworzeniu klasy poprostu tworzymy jej obiekt w funkcji main() za pomocą operatora new, a następnie uruchamiamy pętlę obsługi zdarzeń za pomocą funkcji Run():


int main()
{
new PierwszaApp; //stworzenie obiektu aplikacji
be_app->Run(); // uruchomienie pętli obsługi zdarzeń
delete be_app; // usunięcie obiektu aplikacji
}


Każda aplikacja może mieć tylko jeden obiekt aplikacji, który jest automatycznie przydzielany do wskaźnika be_app w konstruktorze klasy BApplication (dlatego nie musimy umieszczać nazwy wskaźnika przed operatorem new).
Przed samym zakończeniem działania programu musimy usunąć obiekt aplikacji:

delete be_app;

Cały program wygląda następująco :


//main.cpp
#include <Application.h>
class PierwszaApp : public BApplication
{
public :
PierwszaApp():BApplication("application/pierwszaapp")
   {
   }

};

int main()
{
new PierwszaApp; //stworzenie obiektu aplikacji
be_app->Run(); // uruchomienie pętli obsługi zdarzeń
delete be_app; // usunięcie obiektu aplikacji
}


Aby skompilować i z linkować program używamy skrótu klawiszowego Ctrl + m lub polecenia Make z menu Project.
Plik wykonywalny będzie miał nazwę BeApp, chyba że zmieniliśmy jego nazwę w preferencjach projektu (okno zarządzania projektem, menu Edit->Project Settings zakładka x86 ELF Project).
Uruchomienie naszego programu nie robi właściwie nic poza stworzeniem aplikacji i zajęciem miejsca na pasku zadań.
Powyższy program można ściągnąć tutaj [Link].

Powrót


And3mD online - www.and3md.prv.pl
Kontakt: And3mD@interia.pl