STRICT を宣言する

STRICT を宣言して効果を確かめてみました。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. STRICT はコンパイル時のエラーチェックを厳密に行う宣言です。
    特にハンドルのサイズは全て32ビットなので何でも代入できるのですが、誤って代入するとデバッグが大変です。
    STRICT は windows.h に先立って最初に宣言します。
  2. メインプログラムのソースコードです。
    /*******************************/
    /*★ STRICT TEST     前田 稔 ★*/
    /*******************************/
    #define     STRICT
    #include    <windows.h>
    HPEN        hPen;
    HBRUSH      hBrush;
    HDC         hdc;
    HWND        hwnd;
    UINT        u;
    int         i;
    WORD        w;
    
    void  func(WORD p1, int p2, char p3)
    {
    }
    
    //★ Windows Main 関数
    int  WINAPI  WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int nCmdShow)
    {
        hBrush= (HBRUSH)hPen;
        hdc= hPen;
        hdc= (HDC)hPen;
        hwnd= hdc;
        hwnd= (HWND)hdc;
        i= u;
        u= i;
        u=w= -1;
        func(i,w,w);
        return 0;
    }
    
  3. 結論から言うと STRICT の効果は全く認められませんでした。
    どこかで「バージョン? 以降では宣言する必要は無い」との記述を見たような気がします。
    テストでは WindowsXP で Visual C++ Ver 6 を使いました。

超初心者のプログラム入門(Win32API C++)