- Main Page
- Namespaces
- Classes
- Related Pages

# example ヘッダ

exmaple ヘッダは、 BuddhaLib.h でインクルードのできないボーナスコードの入ったヘッダで、 ライブラリファイルにもコードは含まれません。これらのヘッダに定義されたクラスやサンプル コード、マクロなどを利用することで、より素早くプロトタイピングを行うことができます。た だし、以下の点に注意してください。

- 使用する際にはそれぞれのヘッダファイルを個別に include する必要があります。
- ヘッダのみで機能させるために、.cppファイルとの分離を行っていません。C++のコードを ヘッダ内に埋める「プロトタイプ宣言なし」の形になっています。
- クラス類は、 BuddhaLibExample 名前空間に所属しています。

## example/BuddhaExampleMain.h

このヘッダはマクロ BUDDHA_EXAMPLE_WINMAIN を定義しています。このマクロは WinMain 関数 の定義を省略するためにあり、 BUDDHA_EXAMPLE_WINMAIN(CLASS) で以下のコードを展開します。

         INT WINAPI WinMain(HINSTANCE hinst, HINSTANCE, LPSTR, INT)
         {
             CLASS *game = new CLASS();
             game->Run();

             delete game;

             return 0;
         }

たとえば、 MyFirstGame というクラスを定義した場合、 Windows アプリケーションとしてのメ イン関数を定義しなくても、定義位置に BUDDHA_EXAMPLE_WINMAIN(MyFirstGame); と書けば、 コンパイルができます。ただしこのマクロの使用対象となるゲームクラスのコンストラクタは void でなくてはいけません。