|
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
|