BorlandC++5.5.1を使ってみる
まずはインストールです。
ボーランドのサイトからダウンロードするか、CマガジンのCDからセットアップしましょう。
デフォルトでCドライブのカレントにインストールされるはずです。
(後々のことを考えてデフォルトでインストールしましょう。)
パスがきちんと通っていれば、BCC32でコンパイルできます。
インストールしたときはパスがありません。
説明書を見て自力で設定するか、setbccを使いましょう。
以下のプログラムを入力してコンパイルしてみましょう。
入力はテキストエディタかメモ帳を起動して打ちこみ(コピーペースト可)、test.cppの
ファイル名で保存します。
#include<stdio.h> int main() { printf("Hello\n"); return(0); } |
次にDOS窓(コンソール)を起動します。
スタートメニューから”アプリケーション名を指定して実行”を選び"command.com"と入力します。
この時、プログラムのあるフォルダをアクティブ(最前面)にしておけば、カレントパスが
そのフォルダになり楽です。
WindowsNT/2000では、ユーザーごとにデスクトップがあるので簡単ではないですが、
C:\WinNT>CD |
と入力して
現在の作業フォルダのタイトルバーにあるアイコンをDOS窓にドロップしてリターンを押します。
C:\WinNT>CD
"c:\My Documents\デスクトップ\作業フォルダ" C:\My Documents\デスクトップ\作業フォルダ> |
これで準備はOKなはずです。
作業を楽にするために、”DOSKEY”をコマンドプロンプトに入力しておくと反復入力しなくて助かります。
コンパイルは次のようにします。
>BCC32 test.cpp |
実行結果
>Hello |
DOSレベルのプログラムですが、まずC言語の学習には最適でしょう。
厳密にはCのソースは.cで保存し、C++のソースは.cppとする。
コンパイラは拡張子でCとC++を区別するからである。
例え同じプログラムでもコンパイラがC++と認識すると文法チェックなどが厳しくなる。
◆Windowsアプリケーション
次にWindowsのプログラムを入力して実行します。
Windowsのプログラムは簡単なものでもちょっと長くなります。
で、ビルドの仕方がちょっと変わって、
BCC32 -W ファイル名
となります。
-Wを付けるとWindowsのライブラリをリンクしてくれるのです。
サンプルプログラムは次の通り(Cマガジンプログラムを参考)
Test2.cpp
#include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); char szClassNme[] = "sample window"; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPreInst, LPSTR lpCmdLine, int nCmdShow) { HWND hWnd; MSG msg; WNDCLASS wndcls; if (!hPreInst) { wndcls.style = CS_HREDRAW | CS_VREDRAW; wndcls.lpfnWndProc = WndProc; wndcls.cbClsExtra = 0; wndcls.cbWndExtra = 0; wndcls.hInstance = hInstance; wndcls.hIcon = NULL; wndcls.hCursor = LoadCursor(NULL, IDC_ARROW); wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndcls.lpszMenuName = NULL; wndcls.lpszClassName = szClassNme; if (!RegisterClass(&wndcls)) return FALSE; } hWnd = CreateWindow(szClassNme, lpCmdLine, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 320, 240, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); while(1){ if(PeekMessage(&msg,0,0,0,PM_REMOVE)){ if(msg.message == WM_QUIT) return 0; TranslateMessage(&msg); DispatchMessage(&msg); } } } LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_DESTROY: PostQuitMessage(0); break; case WM_PAINT: { HDC hDC=GetDC(hWnd); for(int a=0;a<100;++a) SetPixelV(hDC,a+100,a+100,RGB(255,0,0)); ReleaseDC(hWnd,hDC); } break; default: return(DefWindowProc(hWnd, msg, wParam, lParam)); } return (0L); } |
実行すると次のようになる。
点で斜めの線を描いたが、たったこれだけでもこんなに長いプログラムを必要とする。
いちいち入力するのは面倒だが、一度プログラムを作ってライブラリ化すれば再利用できる。
より便利なライブラリを構築することがプログラム開発のしいてはゲーム開発の効率化に
なる。
そのためにもC++のクラスの概念を理解したほうがよりいいでしょう。
初めは難解に思えるが、使えば使うほど便利であることに気づくはずだ。
●●フリーな統合環境●●
メモ帳じゃいやだっていう人はフリーで便利なものがあります。
BCC Developer(お奨め)
というのはプロジェクトを作成して本格的に開発ができます。
リソースも追加できるのがすごいところ。
あと以下のものもあるので使ってみるのもいいかも。
TeraPad テキストエディタ
BCCForm リソースエディタ
setbcc 環境設定用