spComponent チュートリアル

はじめに

spComponentは,C言語で書かれたマルチプラットホームGUIツールキットです. このチュートリアルでは, そのspComponentを使用してアプリケーションを作成する方法を説明します. C言語についての知識があることを想定して説明を行っていますので, C言語についての知識がない人は,まず,C言語に関する本を読んでおくことをお勧めします.

また,spComponentは, オブジェクト指向的なプログラミングスタイルによって実装されているため, ある程度オブジェクト指向の考え方を理解していた方が良いですが, 知らなくてもアプリケーションの作成は可能です.

簡単なプログラム

ここでは,例題のプログラムに用いるインクルードファイル, 関数を中心に解説を行います.ここで説明するものは, このツールキットを使用する上で重要なものばかりです. なお,spComponentでは,GUIの部品のことをコンポーネントと呼んでいます.

コンパイル

Windows環境においては,他のアプリケーションと同様,Visual Studioを使用します. WindowsでCygwinを用いる場合は,下記で説明するUNIX環境と同様に, Makefileを作成してコンパイルすることもできますが,現在は推奨していません. Visual Studioを用いる場合の詳細については, Visual Studio環境の項を参照して下さい.

UNIX環境(LinuxやMac OS Xを含みます)において,spComponentを使用したアプリケーションをコンパイルするためには, 以下の方法のいずれかを選択する必要があります.

  1. コマンドラインから直接インクルードファイルとリンクするライブラリを指定して, コンパイラを実行する.この方法は,Makefileを作成する手間が省ける反面, コンパイルのたびにオプションを指定する必要があるため面倒. ここではこの方法については解説しません.
  2. 通常のアプリケーションと同様にMakefileを作成する. ただし,Makefile作成のための知識が必要. この方法も,ここでは解説しません.
  3. spComponent用のMakefileを作成する.このMakefileの作成方法を以下で解説します.

Androidについては,Android版での注意点のページを, Mac OS 8・9については,Mac OS 8・9のページを 参照して下さい.

Visual Studio環境

ここでは,Visual Studio環境でのコンパイル方法について解説します. ただし,Visual Studioのバージョンの違いによって, 方法が微妙に違うと思われますので, 自分のバージョンに合わせて読み換えて下さい. ここではVisual Studio 2008での方法を説明します.

  1. まずは,通常のWindowsプログラムと同様に, プロジェクトを新規に作成し,作成したソースファイル(上の例ではhello.c)を追加.
  2. `ビルド'メニューの`プロパティ'をクリックして, プロジェクト設定のダイアログを開く.
  3. ダイアログの左のツリーで,`構成プロパティ'の項目の中の`C/C++'>`全般'を選択.
  4. 右側のリストにおける`追加のインクルードディレクトリ'という項目に, spBaseとspComponentのインクルードファイルのパスを追加(例えば,`c:\usr\include'を追加).
  5. ダイアログの左のツリーで,`構成プロパティ'の項目の中の`リンカ'>`全般'を選択.
  6. 右側のリストにおける`追加のライブラリディレクトリ'という項目に, spBaseとspComponentのライブラリのパスを追加(例えば,`c:\usr\lib'を追加).
  7. 左のツリーで`リンカ'>`入力'を選択.
  8. 右側のリストにおける`追加の依存ファイル'という項目に, spBaseとspComponentのライブラリを追加(`spBase.lib spComponent.lib'を追加).
  9. `OK'ボタンを押し,ダイアログを閉じる.
  10. 通常のアプリケーションと同様に,`ビルド'メニューの`ソリューションのビルド'をクリックし,コンパイルを実行.

Makefile

ここでは,Makefileの書き方について説明します. なお,spComponentライブラリは, 通常のライブラリと同じようにリンクさせることもできますので, Makefile の書き方に詳しい人は,ここでの説明は無視しても構いません. また,ここで作成したMakefileは,Visual Studio環境では動作しないので, 注意して下さい(Cygwin環境では動作します).

まず,上記のhello.c用のMakefileの内容を以下に示します.

USE_CONSOLE   = y
USE_GUI       = y
#USE_GCC       = y

TOP           = /usr/local

PROGRAM       = hello

SRCS          = hello.c

HDRS          =

USRCFLAGS     =

USRLDFLAGS    =

CPU	      = linux

DEST          = $(HOME)/bin

include $(TOP)/lib/sp/prog.rules

それでは,このMakefileの記述について順に解説します.

このようにMakefileを作成したら,あとは `make' を実行するだけで実行ファイルを作成することができます. 実行ファイルをインストールする場合は,`make install'を実行して下さい. また,`make clean'を実行すれば,オブジェクトファイルが消去されます.

また,UNIX環境において,Motifとgtk+の両方がインストールされている場合は, USE_MOTIF=yという記述を加えればMotifがリンクされ, USE_GTK=yという記述を加えればgtk+がリンクされます. どちらも指定しない場合は,CPUの値に応じてどちらを使用するかが決定されます. ただし,一部の環境ではUSE_GTK=yは無視されます. なお,gtk+のバージョンを2もしくは3にする場合は,USE_GTK=y の代わりに,それぞれUSE_GTK2=yもしくはUSE_GTK3=yを追加します.

この場合のように,Motifとgtk+を切り替えたい場合は, 実行ファイルのみを書き換えれば切り替わるので, 分割コンパイルを行う場合でも`make clean'などを実行する必要は通常はありません (うまくコンパイルできない場合は,`make clean'が必要になる場合があります).

なお,ここで解説したようなMakefileのテンプレートは, `$(TOP)/lib/sp/MakeProg.tmpl'に用意されています.

Mac OS Xでも同様にMakefileを用います. ただし,現在の所,GUIアプリケーションの作成や,プラグインの作成にはXcodeを 用いる必要があります.


Last modified: "2012-09-17 03:15:13 hideki"