libpng.lib作成

用意するモノ
・libpngソース PNG (Portable Network Graphics) Home Site
・zlib.libを作成時にあったモノ一式
・Visual C++2008 Express Edition(64-Bit Targets適用)

ダウンロードしたlibpngを展開。
コマンドプロンプトを開き、展開したlibpngフォルダまで移動。

vc用のmakefileをコピー。

F:\desktop\lpng1238>copy scripts\makefile.vcwin32 .\makefile

MSVCR80.DLLを使いたくないのでmakefileを編集。
19行目

#CFLAGS  = -nologo -DPNG_NO_MMX_CODE -MD -O2 -W3 -I..\zlib
CFLAGS  = -nologo -DPNG_NO_MMX_CODE -MT -O2 -W3 -I..\zlib

lpngフォルダと同じ階層にzlib.libを作ったときのzlibフォルダ01を置いておく。
Visual C++ ツールセットを有効にしてnmake。

32bit
F:\desktop\lpng1238>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
Setting environment for using Microsoft Visual Studio 2008 x86 tools.

64bit
F:\desktop\lpng1238>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat"
Setting environment for using Microsoft Visual Studio 2008 Beta2 x64 tools.

F:\desktop\lpng1238>nmake

libpng.lib完成。
もう一度nmakeする場合は、nmake cleanしてからすること。

  1. フォルダ名をzlibに [戻る]

zlib.lib作成

用意するモノ
・zlibソース zlib Home Site
・Visual C++2008 Express Edition(64-Bit Targets適用)

ダウンロードしたzlibを展開。
コマンドプロンプトを開き、展開したzlibフォルダまで移動。

vc用のmakefileをコピー。

F:\desktop\zlib123>copy win32\Makefile.msc .\Makefile
.\Makefile を上書きしますか? (Yes/No/All): y
        1 個のファイルをコピーしました。

MSVCR80.DLLを使いたくないのでMakefileを編集。
30行目の”-MD”を”-MT”に変更。

#CFLAGS  = -nologo -MD -O2 $(LOC)
CFLAGS  = -nologo -MT -O2 $(LOC)

Visual C++ ツールセットを有効にしてnmake。

32bit
F:\desktop\zlib123>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
Setting environment for using Microsoft Visual Studio 2008 x86 tools.

64bit
F:\desktop\zlib123>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat"
Setting environment for using Microsoft Visual Studio 2008 Beta2 x64 tools.

F:\desktop\zlib123>nmake

zlib.lib完成。
もう一度nmakeする場合は、nmake cleanしてからすること。

朝の良く動いてない頭で

Microsoft Visual Studio 2008 Express Editionをインストールしてみた。
実は2008インストールしてなかったんだ。

あと、Download details: Windows SDK for Windows Server 2008 and .NET Framework version 3.5も忘れずにインストール。

Visual C++ 2008 Express Edition And 64-Bit Targets « Jens’ Blogもインストール。
64ビットexeが作れるようになった。

リソースファイルを手打ちで書くのは面倒なので、ResEdit Resource Editor – free resource editor for Win32入れておくかな。

で、何作るよ?

バージョン管理は大切です。

exeのプロパティにバージョン情報がでるんだけど。
自分で作ったプログラムには出てなかった。

バージョン白い

どうやったら、ここに情報が表示されるのか。

Vistaスタイル?

ツリービューの自動横スクロールとフェードイン/アウトは賛否分かれるみたいですね。
とりあえず、Vistaスタイルなツリービュー書いてみた。

ツリービュー

クリスのクスリのリスク

ぼーっと考えてみた。ので忘れないように。

    BYTE *byDIBData;
    BYTE ***byDIBBuff;
    // byDIBDataに32bitなDIBが入ってるとしてー
    // 画像の高さはiHeight、幅はiWidth
    // メモリ確保
    byDIBBuff = (BYTE ***)malloc(sizeof(BYTE *) * iHeight);
    for(int i = 0; i < iHeight; i++) {
        byDIBBuff[i] = (BYTE **)malloc(sizeof(BYTE *) * iWidth);
        for(int j = 0; j < iWidth; j++) {
            byDIBBuff[i][j] = byDIBData + iWidth * 4 + 4 * j;
        }
    }
    // byDIBDataをbyDIBBuff[y][x][z]で扱えるかもしれない…
    // BMPだとボトムアップが殆どだから、
    // 外のループを逆から回した方がいいかな?
    // メモリ解放
    for(int i = 0; i < iHeight; i++) {
        free(byDIBBuff[i]);
    }
    free(byDIBBuff);

しかし、良いのかコレ…

ブレンディ

アルファブレンドで躓いて早6時間。
朝になりました。
トリプルポインタで遊んでた頃が懐かしいです。

Cげんご

#include <stdio.h>
#include <windows.h>

int wmain(void) {
    char  cStr;
    WCHAR wcStr;

    wprintf(L"cStr : %d\n", sizeof(cStr));
    wprintf(L"wcStr: %d\n", sizeof(wcStr));

    return 0;
}

実行結果
cStr : 1
wcStr: 2

まぁ、当たり前か…