Hello World!の作成:CのKolibriOS向け

「KolibriOSの下でCプログラムを書くことはできますか?」
回答: 「はい、できます!」 、そして以下にその方法を説明します。


プログラムを作成するには、次のものが必要です。

理論のビット

KolibriOSには、ウィンドウとコンソールの2種類のプログラムがあります。 GUIを備えたプログラムは、システム関数とBoxLibライブラリを使用して作成されます。 コンソールプログラムは、 console.objライブラリを使用して記述されています。 ライブラリの使用については、次の記事で説明します。 今日は、システム関数に基づいてウィンドウアプリケーションを作成します。

ウィンドウアプリケーションは、特別なメッセージハンドラーを持つmain()関数で構成されます。

while (!0) { switch (_ksys_wait_for_event(10)) { case 2: return 0; case 3: if (_ksys_get_button_id() == 1) return 0; break; default: //  ,      . break; } } } 

このプログラムでは、キーボードイベントとボタンクリックのみを処理します。 それらの処理は、switch-caseを使用してwhileループで行われます。

これらのイベントを分析しましょう。
2-キーボードのキーが押されています。
3-ボタンが押された、以前に定義されたボタン(この例では、これはウィンドウを使用して作成されたプログラムであるプログラムを閉じるクロスのみです);
イベントシステムの詳細については、 WikiまたはOSに付属のドキュメント(デスクトップ上のDocpackプログラム)を参照してください。

開発を容易にするために、ウィンドウの外観を担当するコマンドを個別のdraw_window()関数に発行します。

ここで、ウィンドウの描画方法を理解します。
ウィンドウの描画は、 _ksys_window_redraw(1)関数で始まり、 _ksys_window_redraw(2)で終わります。 ウィンドウを描画するには、 _ksys_draw_window関数(xによるウィンドウ座標、yによるウィンドウ座標、幅、高さ、色、ウィンドウの種類、ウィンドウのタイトルの色、ウィンドウが移動できないかどうか、ウィンドウの枠の色)を使用する必要があります。

ウィンドウの種類:
0-タイプI-固定サイズのウィンドウ(スキンなし)
1-ウィンドウの領域のみを決定し、何も描画しません
2-タイプII-サイズ変更可能なウィンドウ(スキンなし)
3-スキンのあるウィンドウ(サイズ変更可能)
4-固定サイズのスキンを持つウィンドウ

最後に、テキストを描画するには、次を使用する必要があります: _ksys_write_text (x座標、y座標、フォントタイプ、ライン、ライン長);

これで、コード自体に進むことができます

Hummingbirdでプログラムを直接作成できます。 Tinypadを開き、次のコードを記述します。

 #include <stdio.h> #include <string.h> #include <kolibrisys.h> #define FONT0 0 #define FONT1 0x10000000 char header[] = {"Hello World!"}; #define BT_NORMAL 0 #define BT_DEL 0x80000000 #define BT_HIDE 0x40000000 #define BT_NOFRAME 0x20000000 void draw_window () { _ksys_window_redraw(1); _ksys_draw_window(100, 100, 300, 120, 0xaabbcc, 4, 0x5080d0, 0, 0x5080d0); _ksys_write_text(50,30,FONT0, header, strlen(header)); _ksys_window_redraw(2); } int main (int argc, char **argv) { while (!0) { switch (_ksys_wait_for_event(10)) { case 2: return 0; case 3: if (_ksys_get_button_id() == 1) return 0; break; default: draw_window(); break; } } } 

今がコンパイルの時です!

Hummingbirdにないコードを作成した場合は、 コンパイラとともにUSBフラッシュドライブにダンプします。 たとえば、ファイルをhello.cとして保存します。
Hummingbirdsをインストールできない場合は、USBフラッシュドライブを仮想マシンに接続できます。

画像

コンパイルするには、コンソール( Shell )でコンパイラが存在するディレクトリを開き、次のコマンドを入力します
ktcc.kex <__> libck.a –o <__>

すべてが正しく行われた場合、同じディレクトリにプログラムが表示されます。 これで開始できます。
そして、次の図を取得します。

画像

たくさん読みたくない人のために、トピックに関するビデオチュートリアル:


繰り返しますが、私たちのフォーラムktcc (およびそのプログラム)について話し合うことができます。

Source: https://habr.com/ru/post/J212169/


All Articles