USB メモリ活用講座
【実践編・Borland C++ 開発環境ポータブル化】

< 最終更新日時: 2019-09-30 >

準備

Windows 7/8.1/10 でインストール作業を行なうには,管理者 (Administrator) 権限を持つユーザで作業を行うとよいでしょう.

BCC55 の開発環境には,ソースファイルを編集するためのエディタが含まれていません. 基礎編で紹介したフリーのテキストエディタ TeraPad を,あらかじめインストールしておきましょう.

BCC55 はエンバカデロ・テクノロジーズのダウロードページ から,「C++ コンパイラの入手方法」に従ってダウンロードできます (長岡高専の学生は 学内のダウンロードサービス を利用するとよいでしょう). Borland C++ Compiler 5.5 の配布ファイル freecommandlinetools2.exe をダウンロードする際,ダウンロード先としてはUSBメモリではなく,ローカルハードディスクの適切なフォルダ (C:\temp など) を指定しましょう.

BCC55 の展開 (インストール)

BCC55 をインストールするためには約 54MB の空き容量が必要となります. また,インストールを行うには,管理者 (Administrator) 権限を持つユーザで作業を行う必要があります.

以下では,ローカル PC へインストールする場合は C:\tool\bcc55 を,USB メモリにインストールする場合は U:\tool\bcc55 を展開先として設定するものとします.

  1. 準備のところでダウンロードした freecommandlinetools2.exe を起動します. ユーザアカウント制御ダイアログボックスに「変更を許可しますか」といった表示が出たら,はい をクリックします (Administrator 権限を持つユーザではない場合は,ここから先へ進めないはずです).
  2. 図1の「使用許諾契約」ダイアログボックスが表示されるので,内容を一読して同意できるならば 同意する をクリックします. ライセンス契約に同意できなければ キャンセル をクリックしますが,その場合は BCC55 を利用することはできません.
    図1・使用許諾画面
    図1・使用許諾画面
  3. 図2の「インストール先の指定」ダイアログボックスが表示されるので,インストール先フォルダを必要に応じて変更して 完了 をクリックします※1. 以下では,インストール先フォルダを C:\tool\bcc55 に変更したものとして説明します (USB メモリにインストールする場合は U:\tool\bcc55).
    図2・インストール先の指定
    図2・インストール先の指定
  4. 図3のように「指定したアウトプットフォルダが存在しない」旨のダイアログボックスが表示される場合には,はい をクリックします.
    図3・アウトプットフォルダ作成の確認
    図3・アウトプットフォルダ作成の確認
  5. 図4 のような解凍の進捗状況が表示されるので,何もしないでしばらく待ちます.
    図4・解凍の進捗状況表示
    図4・解凍の進捗状況表示
  6. 図5 のように「パッケージ転送に成功した」旨のダイアログボックスが表示されたら,OK をクリックします.
    図5・完了通知
    図5・完了通知

これで BCC55 の実行に必要なファイルが解凍 (展開) されましたが,プログラム開発を行うためには初期設定を行う必要があります.

ローカルインストール

ローカルハードディスク (C: など) のようにドライブレターが固定されたフォルダに BCC55 をインストール (展開) しただけでは BCC55 は利用できません. 展開先のフォルダ (C:\tool\bcc55) にある readme.txt の記述にしたがって,環境変数 PATH への追加と,bcc32.cfgilink32.cfg ファイルの作成を行なう必要があります.

ローカルインストール時の基本設定

ここでは,コンピュータを利用する場合は,いつでも C コンパイラを起動できるように準備するための設定法を紹介します.

他の開発環境 (Visual Studio など) も併用したい場合や,長岡高専総合情報処理センターの端末室のように「BCC55 開発環境」というショートカットを作成したい場合には,ローカルインストール時の応用設定 をご覧ください.

  1. 環境変数の設定
    1. コントロールパネルを開き「システムとセキュリティ」から「システム」を開きます (図6).
      図6・Windows の「システム」画面
      図6・Windows の「システム」画面
    2. 「システムの詳細設定」(図6 の赤枠) をクリックして,システムのプロパティダイアログボックスを開きます (図7).
      図7・システムのプロパティダイアログボックス
      図7・システムのプロパティダイアログボックス
    3. 環境変数 (図7 の赤枠) をクリックして,環境変数ダイアログボックスを開きます (図8).
      図8・環境変数ダイアログボックス
      図8・環境変数ダイアログボックス
    4. 「システム環境変数」欄の「Path」(図8 の赤矢印) をクリックして,編集 (図8 の赤枠) をクリックし,システム変数の編集ダイアログボックスを開きます (図9).
      図9・システム変数の編集ダイアログボックス
      図9・システム変数の編集ダイアログボックス
    5. 「変数値」の最後 (あるいは途中のどこか) に ;C:\tool\bcc55\bin を追加し (図10 の下線部),OK をクリックします. なお,複数のパスを設定する場合はセミコロン「;」で区切りを入れる必要があります.
    6. 環境変数ダイアログボックス (図8) に戻るので,OK をクリックします.
    7. システムのプロパティダイアログボックス (図7) に戻るので,OK をクリックします.
  2. bcc32.cfg の作成: テキストエディタで次の 2 行を入力したファイルを作成し,C:\tool\bcc55\bin の中に,bcc32.cfg という名前で保存します.
    -I"C:\tool\bcc55\include"
    -L"C:\tool\bcc55\lib"
    
  3. ilink32.cfg の作成: テキストエディタで次の 1 行を入力したファイルを作成し,C:\tool\bcc55\bin の中に,ilink32.cfg という名前で保存します.
    -L"C:\tool\bcc55\lib"

「コマンドプロンプト」を開き,bcc32 とタイプして Enter キーを押してみます (bcc32 の大文字/小文字は区別する必要はありません). 「Borland C++ 5.5.1 for Win32」で始まる英語のメッセージ (コンパイルスイッチの説明) が表示されれば,正しく設定が済んでいるものと思われます. 「'bcc32'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」といったメッセージが表示されたら,環境変数の設定に失敗している可能性が高いので,よく見直して修正しましょう.

BCC55 をインストールしたフォルダ (C:\tool\bcc55) 以下の Help フォルダには,コンパイラやリンカなどの使い方に関するヘルプファイル bcb5tool.hlp が含まれています. しかし,標準的な Windows Vista/7/8/8.1 では,このファイルを開くことができません. ヘルプファイルを利用するには,Windows ヘルププログラム を追加でインストールする必要があります.

ローカルインストール時の応用設定

ここでは,Windows のデスクトップに,BCC55 によるプログラミング専用のコマンドプロンプトを起動するためのショートカットを作成する方法を紹介します. この方法によって環境変数の設定を行わずに BCC55 を利用可能となります.

  1. ローカルインストール時の基本設定bcc32.cfg の作成と,ilink32.cfg の作成を行ないます.
  2. テキストエディタで次のような内容を記述したファイルを作成し,C:\tool\bcc55 の中に,bccenv.bat という名前で保存します (保存場所やファイル名が気に入らなければ,別のものに変えても構いません).
    set PATH=c:\tool\bcc55\bin;%PATH%
  3. デスクトップの何もない領域で右クリックし,「新規作成」-「ショートカット」を選択します.
  4. 「ショートカットの作成」ダイアログボックス (図10) が表示されるので,次のように記入して 次へ をクリックします.
    %ComSpec% /K c:\tool\bcc55\bccenv.bat
    図10・ショートカットの作成
    図10・ショートカットの作成
  5. 「名前の指定」ダイアログボックス (図11) が表示されるので,例えば「BCC55 開発環境」のような,適切な名前を記入して 完了 をクリックします.
    図11・ショートカットの名前設定
    図11・ショートカットの名前設定
  6. デスクトップ上に「BCC55 開発環境」という名前のショートカットアイコンができるはずです.
  7. できあがった「BCC55 開発環境」ショートカットアイコンを右クリックし,「プロパティ」を選択します.
  8. 「BCC 開発環境のプロパティ」ダイアログボックス (図12) が表示されるので,「作業フォルダ」の欄に,主にプログラム開発を行うフォルダの場所を記入して OK ボタンをクリックします. Windows 7/8/8.1/10 では %HOMEDRIVE%%HOMEPATH% と記入すると,ユーザホームディレクトリが指定されることになります.
    図12・BCC55 開発環境のプロパティ
    図12・BCC55 開発環境のプロパティ

これで,「BCC55 開発環境」ショートカットアイコンから開かれるコマンドプロンプトの中でだけ Borland C++ Complier を用いたコンパイル作業を行うことができるようになります.

Windows のスタートメニューに「BCC55 開発環境」を表示させたい場合は,デスクトップのショートカットアイコンを,「しかるべきフォルダ」にコピーしなければなりません. 「しかるべきフォルダ」は Windows OS によって異なりますので,自分で調べてください.

ポータブルインストール

USB ドライブのように,割り当てられるドライブレターが挿入するときに動的に決まるドライブに BCC55 をインストールする場合には,ちょっとした仕掛けが必要となります. BCC55 開発環境をポータブル化するためには,USB ドライブに割り当てられたドライブレターに応じて,次の 3 つを実現しなければなりません.

ポータブルインストール時の基本設定

BCC55 のポータブル化を実現するために,ここでは WSH (Windows Scripting Host) を利用してみましょう. WSH は Visual Basic または JScript で書いたスクリプトと呼ばれる比較的短いプログラムを実行する環境のことです. 詳しくは,msdn の Microsoft Windows スクリプトテクノロジ などをご覧ください※2

bcc32.cfgilink32.cfg を毎回作成 (上書き) するのは嫌という人は,ポータブルインストール時の応用設定をご覧ください.

それでは,テキストエディタを起動して,次のような VB (Visual Basic) スクリプトを入力しましょう. 先頭がアポストロフィ (') の行はコメント (注釈) となりますので,飛ばしてもかまいません. 正確にタイプする自信がない方は,ブラウザからエディタへコピー&ペーストすればよいでしょう.

' BCC55 ポータブル設定
Option Explicit
Dim objWshShell,objFS,objEnv,objStream
Dim strDrv,strBccPath
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
' カレントドライブのドライブレターを取得する
strDrv = objFS.GetDriveName(WScript.ScriptFullName)
' tool\bcc55 フォルダが存在するかをチェック
strBccPath = strDrv & "\tool\bcc55"
If objFS.FolderExists(strBccPath)=0 Then
    WScript.Echo strBccPath & "が見つかりませんので終了します"
    WScript.Quit 0
End If
' 環境変数PATHの先頭にbin,tool\bcc55\binを追加
Set objEnv = objWshShell.Environment("Process")
objEnv.Item("PATH") = strDrv & "\bin;" & strBccPath & "\bin;" & objEnv.Item("PATH")
' Borland C++ 用CFGファイル作成
Set objStream = objFS.OpenTextFile(strBccPath & "\bin\bcc32.cfg", 2, True, 0)
' 第1引数: ファイル名
' 第2引数: 1=Read, 2=Write, 8=Append
' 第3引数: True=ファイルが存在しないとき新規作成, False=エラー発生
' 第4引数: 0=ASCII, -1:Unicode(UTF-16), -2:default
objStream.WriteLine "-I""" & strBccPath & "\Include"""
objStream.WriteLine "-L""" & strBccPath & "\Lib"""
objStream.Close
Set objStream = objFS.OpenTextFile(strBccPath & "\bin\ilink32.cfg", 2, True, 0)
objStream.WriteLine "-L""" & strBccPath & "\Lib"""
objStream.Close
' コマンドプロンプトウィンドウを開く
objWshShell.Run "%COMSPEC%"

入力し終えたら bccenv.vbs と名前をつけて,USB ドライブ上の適当なフォルダ (U:\bin など) に保存しましょう. 「メモ帳」でこのスクリプトを作成する方は,保存時に bccenv.vbs.txt となってしまわないよう気をつけてください (失敗したらリネームすればよいだけですが).

図13・エラーメッセージ
図13・エラーメッセージ

いよいよ動作確認です. エクスプローラなどで USB ドライブの中身を表示し,フォルダ bin の中にある bccenv.vbs を起動します. そのとき「コマンドプロンプト」が開かれたら,第1段階は成功です. 右の図13 のようなエラーメッセージが出力された場合には,その USB ドライブに BCC55 の展開 (インストール) に従って正しくインストール作業をしてあるか,確認してください.

次に,そのコマンドプロンプトで TeraPad とタイプして Enter キーを押してみます (TeraPad の大文字/小文字は区別する必要はありません). このとき TeraPad が起動されれば,第2段階成功です. 「'TeraPad'は内部コマンドまたは外部コマンド (中略) として認識されていません」といった類のメッセージが表示されるようでしたら,TeraPad のインストールをしてあるか,確認してください. 上記の bccenv.vbs では USB ドライブの bin というフォルダにパスを通しています (環境変数 PATH に USB ドライブの bin フォルダを追加することを意味します). したがって,TeraPad のインストール先が別のフォルダである場合にも,エラーメッセージが表示されます. TeraPad のインストール先を bin とするか,スクリプトを修正して TeraPad のインストール先にパスを通すか,どちらかの修正を行なってください.

続いて,コマンドプロンプトで bcc32 とタイプして Enter キーを押してみます (bcc32 の大文字/小文字は区別する必要はありません). 「Borland C++ 5.5.1 for Win32」で始まる英語のメッセージ (コンパイルスイッチの説明)が表示されれば,第3段階も成功です. うまくいかないようでしたら,第2段階の説明や BCC55 の展開 (インストール) を参考に修正作業を行ないましょう.

最後は,実際に C 言語のプログラムを作成してコンパイル,実行してみましょう. 自作のプログラムを置くためのフォルダを USB ドライブの prog とします (このフォルダはエクスプローラなどであらかじめ作成しておくとよいでしょう). 次のように入力してカレントディレクトリを prog へ移動し,TeraPad を起動してファイル hello.c の編集を開始します.

cd \prog Enter
TeraPad hello.c Enter

TeraPad のダイアログボックスが表示され,「ファイルを新規作成しますか?」と聞いてきた場合には OK ボタンを押します. TeraPad が起動されたら,次のようなプログラムを入力して保存してから TeraPad を終了します (コピー&ペーストもできるかもしれませんが,このくらいは自力でタイプ入力しましょう).

#include <stdio.h>

int main( )
{
    printf("Hello, C world\n");
    return 0;
}

コマンドプロンプトの画面から,次のように入力してコンパイルを実行します.

bcc32 hello.c Enter

警告や Error といった文字列が表示されたら,ソースファイル hello.c に入力ミスがないかをよく確認して修正します. うまくコンパイルが終了したように思えたら,次のように入力してフォルダの中身を確認します.

dir Enter

hello.c のほかに,hello.tdshello.objhello.exe が表示されればコンパイルは完了です. 最後に,実行プログラムを起動してみましょう.

hello Enter

「Hello, C world」という文字列が表示されれば,最終チェックも完了です. コマンドプロンプトを閉じて,作業を終了するには次のように入力します.

exit Enter

なお,スタート-すべてのプログラム-アクセサリ-コマンドプロンプト から起動できるコマンドプロンプトでは,エディタの起動やコンパイルはできませんので,ご注意ください.

ここまでの動作が確認できたら,ランチャに bccenv.vbs を登録するとよいでしょう.

ポータブルインストール時の応用設定

基本設定ではローカルディスクへ BCC55 をインストールする方法に忠実に従い,bcc32.cfgilink32.cfg と毎回作成 (上書き) していました. 今どきのフラッシュメモリは数万回の消去・書込みで寿命が尽きるとされていますので,仮に 1 万回が寿命として,毎日 3 回の上書きをしたとしても 9 年くらいは大丈夫とは思いますが,ムダは避けたほうがよいのは確かです. そこで,設定ファイルの更新をしなくても済むように,make ユーティリティの設定を行う方法を紹介します. make ユーティリティは,複数のソースファイルから一つの実行ファイルを作成 (ビルド) するような,規模の大きいプログラム開発を行うのに有用ですので,ついでに使い方を覚えるとよいでしょう.

それでは,以下の手順に従って,作業を行ってください.

  1. USB ドライブの tool\bcc55\Bin\bcc32.cfg をテキストエディタで編集し,次のような内容で保存します (念のためです).
    -I"\tool\bcc55\Include"
    -L"\tool\bcc55\Lib"
    
  2. USB ドライブの tool\bcc55\Bin\ilink32.cfg をテキストエディタで編集し,次のような内容で保存します (念のためです).
    -L"\tool\bcc55\Lib"
  3. USB ドライブの tool\bcc55\Bin\builtins.mak をテキストエディタで編集し,次のような内容で保存します. 実際は,既存の builtins.mak を開いて,「以下の2行を追加」の下2行分だけを書き込むだけです. 作業に不慣れな人は,事前に builtins.makbuiltins.org などの名前でコピーして,バックアップをとっておくと安心でしょう.
    #
    # Inprise C++Builder - (C) Copyright 1999 by Borland International
    #
    # BCC55 のポータブル化設定
    #
    
    CC       = bcc32
    RC       = brcc32
    AS       = tasm32
    
    # 以下の2行を追加
    CFLAGS   = -I$(INCLUDE) -L$(LIB)
    CPPFLAGS = -I$(INCLUDE) -L$(LIB)
    
    !if $d(__NMAKE__)
    CXX      = bcc32 -P
    CPP      = bcc32 -P
    !endif
    
    .asm.obj:
          $(AS) $(AFLAGS) $&.asm
    
    .c.exe:
          $(CC) $(CFLAGS) $&.c
    
    .c.obj:
          $(CC) $(CFLAGS) /c $&.c
    
    .cpp.exe:
          $(CC) $(CFLAGS) $&.cpp
    
    .cpp.obj:
          $(CC) $(CPPFLAGS) /c $&.cpp
    
    .rc.res:
          $(RC) $(RFLAGS) /r $&
    
    .SUFFIXES: .exe .obj .asm .c .res .rc
    
    !if !$d(BCEXAMPLEDIR)
    BCEXAMPLEDIR = $(MAKEDIR)\..\EXAMPLES
    !endif
    
  4. 基本設定で作成した bccenv.vbs を次のように書き換えて保存します.
    ' BCC55 ポータブル設定 Ver.2
    Option Explicit
    Dim objWshShell,objFS,objEnv,objStream
    Dim strDrv,strBccPath
    Set objWshShell = WScript.CreateObject("WScript.Shell")
    Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
    ' カレントドライブのドライブレターを取得する
    strDrv = objFS.GetDriveName(WScript.ScriptFullName)
    ' tool\bcc55 フォルダが存在するかをチェック
    strBccPath = strDrv & "\tool\bcc55"
    If objFS.FolderExists(strBccPath)=0 Then
        WScript.Echo strBccPath & "が見つかりませんので終了します"
        WScript.Quit 0
    End If
    ' 環境変数PATHの先頭にbin,tool\bcc55\Binを追加
    Set objEnv = objWshShell.Environment("Process")
    objEnv.Item("PATH") = strDrv & "\bin;" & strBccPath & "\Bin;" & objEnv.Item("PATH")
    ' 環境変数INCLUDEとLIBを設定
    objEnv.Item("INCLUDE") = strBccPath & "\Include"
    objEnv.Item("LIB") = strBccPath & "\Lib"
    ' コマンドプロンプトウィンドウを開く
    objWshShell.Run "%COMSPEC%"
    

設定は以上です. C のソースファイル hello.c をコンパイルして,実行ファイルを作成するには,bccenv.vbs を起動して開かれるコマンドプロンプトウィンドウから,make ユーティリティを使って,次のように入力します (拡張子が .c ではなく,.exe であることに注意してください).

make hello.exe Enter

このコマンド入力によって,make ユーティリティ (USB ドライブの tool\bcc55\Bin\make.exe) が起動時に,同じディレクトリにある builtins.mak を読み込み,その中に書かれたルールに従って実行ファイル hello.exe を作成してくれます. 今回の例では,builtins.mak の19行目~35行目に書かれている「暗黙のルール」の中から,拡張子 .exe のファイルを生成するためのルールを探し,22~23行目に書かれた,

.c.exe:
     $(CC) $(CFLAGS) $&.c

が適用されます (ソースファイルが hello.cpp であったときは28~29行目のルールが適用されます). このルールでは拡張子 .c のファイルから拡張子 .exe のファイルを生成するのに,$(CC) で定義されたコマンドを起動し,そのオプションとして $(CFLAGS)$&.c を与えます. $(CC) は7行目で定義されている bcc32 に,$(CFLAGS) は11行目で定義されている "-I$(INCLUDE) -L$(LIB)" に置換されます. さらに $(INCLUDE)$(LIB) はそれぞれ環境変数の INCLUDELIB の内容で置換されます. $& は,ターゲットファイルである hello.exe の拡張子を除く部分である hello に置換されます.

文章で書くとややこしいことをしているのですが,動的に割振られたドライブレターを取得して設定した環境変数 INCLUDELIB を,コンパイル時点で利用するようにしているところが肝です. bcc32.cfgilink32.cfg%INCLUDE%$(INCLUDE) のような記述ができると簡単なのですが,うまくいかないようです.

make ユーティリティの使い方や,MAKEFILE と呼ばれるルール設定ファイルの書き方については,USB ドライブの tool\bcc55\Help にある bcc5tool.hlp に詳しく書いてあります (Windows ヘルププログラム 参照). ここで紹介したものは必要最小限に近い設定で,コンパイルとリンクを別々に動作させるような場合 (リンカである ilink32.exe を単独で起動する場合)には,更に builtins.mak のルールを追加する必要があるかもしれません. 工夫すれば TeX のソースファイルから DVI ファイルや PDF ファイルを作るためのルールを指定して,TeX のコンパイルも make ユーティリティに任せることもできますので,ぜひ使い方を調べて,機能を追加して自分なりに便利な環境を整備してください.

ポータブルインストール時の応用設定 (別解)

応用設定の別解として,基礎編・PortableApps.com の配布ソフト活用で紹介した,Command Prompt Portable を活用する方法が考えられます.

まずは,Command Prompt Portable をインストールして,1回起動して閉じます. これにより,PortablaApps\CommandPromptPortable\Data\Batch フォルダに commandprompt.bat というバッチファイルが作成されます.

次に,BCC55 の応用設定の1~3を実施します (4 の bccenv.vbs の編集だけ,やらなくてもよいことになります).

最後に,PortablaApps\CommandPromptPortable\Data\Batch フォルダの commandprompt.bat をテキストエディタで開き,次のような内容に編集して上書き保存します.

@echo off
color 1f
prompt $p$g
title USB-Drive(%~d0)
set PATH=%~d0\BIN;%~d0\tool\bcc55\Bin;%PATH%
set INCLUDE=%~d0\tool\bcc55\Include
set LIB=%~d0\tool\bcc55\Lib
cd \

これで,Command Prompt Portable を起動すれば,make ユーティリティを使って C のソースファイルをコンパイルできるようになるはずです.

GLUT (OpenGL Utility Toolkit) の設定

BCC55 には,OpenGL および OpenGL 補助ライブラリ (glaux) が含まれています. したがって,BCC55 をインストールするだけで本格的な 3D グラフィックスプログラムが作成可能ですが,もう少し手軽に 2D/3D グラフィックスを描画する環境を整備するために,GLUT (OpenGL Utility Toolkit) を追加してみましょう.

GLUT を追加する作業は次の通りです.

  1. GLUT for Win32 の Web ページ から最新の配布ファイル glut-3.7.6-bin.zip をダウンロードします. USB ドライブではなく,ローカルディスクの適当なフォルダ (C:\temp など) に保存しましょう.
  2. ローカルディスクの適当なフォルダ (C:\temp など) 上で glut-3.7.6-bin.zip を展開 (解凍) します.
  3. 配布ファイルに含まれる GLUT のライブラリ (glut32.lib) は,Microsoft Visual C++ 用のライブラリで,BCC55 ではリンクすることができないので,次のコマンドで BCC55 用のライブラリを作成します.
    implib glut32.lib glut32.dll Enter
  4. 以下の3ファイルを移動/コピーします.
    • glut32.dllU:\tool\bcc55\Bin
    • glut.hU:\tool\bcc55\Inlcude\gl
    • glut32.libU:\tool\bcc55\Lib\psdk
  5. 応用設定で編集した builtins.mak をテキストエディタで開き,CFLAGSCPPFLAGS の定義を次のように変更して上書き保存します.
    CFLAGS   = -I$(INCLUDE) -L$(LIB) -L$(LIB)\psdk
    CPPFLAGS = -I$(INCLUDE) -L$(LIB) -L$(LIB)\psdk
    

それでは,動作確認をしましょう. テキストエディタで次のような簡単な GLUT プログラムを作成し,blankwindow.c という名前で保存します.

#include <GL/glut.h>

void display(void) {
    glClear(GL_COLOR_BUFFER_BIT);
    glFlush();
}

void init(void) {
    glClearColor(0.0, 1.0, 0.0, 0.0);
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutCreateWindow(argv[0]);
    glutDisplayFunc(display);
    init();
    glutMainLoop();
    return 0;
}

BCC55 開発環境のコマンドプロンプトから,次のように入力して make ユーティリティを起動します.

make blankwindow.exe Enter
図14・GLUTプログラム
図14・GLUT プログラム

blankwindow.exe が生成されれば成功です. これを起動すると,図14のような緑色に塗りつぶされたウィンドウが表示されるはずです. blankwindow.c のユーザ定義関数 init で呼び出している関数 glClearColor では,4つの引数のうち,最初の3つによって RGB 加法混色による色指定を行っています.引数の範囲は 0.0 から 1.0 で,0.0 は対応する色 (光) を全く照射しないことを,1.0 は対応する色 (光) を最も強く照射することを表します. たとえば,この glClearColor の引数を現在の (0.0, 1.0, 0.0, 0.0) から (1.0, 0.0, 0.0, 0.0) に変えると,塗りつぶしの色は赤に変わります.

長岡高専・電子制御工学科では,GLUT を用いたグラフィックスプログラミングについて,5 年の集中講義として開設している選択科目「プログラミング演習 II」で学習しています. 先ほど紹介した blankwindow.c は,その授業の一番最初に作成するプログラムです. この各科目の詳細については,本校のシラバス (授業計画) の中から電子制御工学科の専門科目をご覧ください.

GLUT によるグラフィックスプログラミングに興味がある方は,和歌山大・床井浩平先生の"GLUTによる「手抜き」OpenGL入門" などを参考にするとよいでしょう.

【付録】Windows ヘルププログラム

Windows Vista/7/8/8.1 は,標準では拡張子が .hlp のヘルプファイルが開けません. Microsoft のダウンロードセンターで配布されている Windows ヘルププログラムをそれぞれの OS に合わせてインストールする必要があります.

この Windows ヘルププログラムは,USB メモリでポータブル化することはできません.

注意: 2016 年 8 月現在,Windows 10 用の Windows ヘルププログラムは提供されていません. Windows 8.1 用 (など) を流用する方法もあるようですので,どうしても必要という方は検索エンジンを利用して探してみましょう.