以前のオペレーティング システムにおける CImage の制限

多くCImageの機能の動作は、Windows の新しいバージョンでのみ。Windows 95 または windows 98 または Windows NT 4. 0、または Windows 2000。 ここでは、特定のメソッドの、バージョンに関する制限について説明します。

CImage::PlgBlt および CImage::MaskBlt は、Windows NT 4.0 以降でだけ動作します。 Windows 95/98 以降で実行されるアプリケーションでは動作しません。

CImage::AlphaBlend および CImage::TransparentBlt は、Windows 2000 以降と、Windows 98 以降でだけ、動作します。これらのメソッドを使用するには、msimg32.lib とリンクする必要があるためです。 このライブラリは、Windows 2000 以降および Windows 98 以降で実行されるアプリケーションでのみ利用できます。

AlphaBlend および TransparentBlt が呼び出されない場合は、Windows 95 または Windows NT 4.0 上で実行されるアプリケーションにこれらのメソッドを含めることができます。 アプリケーションにこれらのメソッドが含まれていて、そのアプリケーションを以前のオペレーティング システムで実行する必要がある場合は、リンカーの /delayload を使用して msimg32.lib の読み込みを遅延します。 アプリケーションが Windows NT または Windows 95 で実行されているときでも、これらのメソッドのいずれかを呼び出さない限り、msimg32.lib が読み込まれることはありません。 CImage::IsTransparencySupported メソッドを使用すると、透過性サポートが利用できるかどうかを確認できます。

使用例

if (CImage::IsTransparencySupported())
{
   // Safe to call CImage::AlphaBlend and CImage::TransparentBlt
}
else
{
   // Transparency not supported.  Fall back to something else.
}

これらのメソッドを呼び出すアプリケーションをコンパイルするには、システム ヘッダーをインクルードする前に #define _WIN32_WINNT ステートメントを挿入し、Windows のバージョンが 5.0 以降であることを示します。

#define _WIN32_WINNT 0x0501

アプリケーションを Windows 2000 または Windows 98 より以前のオペレーティング システムで実行する必要がない場合は、/delayload を使用せずに直接 msimg32.lib にリンクできます。

CImage::Draw の動作は、Windows 2000 または Windows 98 で使用する場合と、Windows NT 4.0 または Windows 95 で使用する場合とで異なります。

_WIN32_WINNT を 0x0500 未満の値にしてアプリケーションをコンパイルする場合は、Draw が動作します。ただし、Windows 2000 以降または Windows 98 以降が実行されているシステムでは、Draw は透過性を自動的には処理しません。

_WIN32_WINNT を 0x0500 以上の値に設定してアプリケーションをコンパイルする場合、Windows 2000 以降または Windows 98 以降が実行されているシステムでは、Draw が自動的に透過性を処理します。 Draw は、Windows NT と Windows 95 でも透過性サポートなしで動作しますが、「AlphaBlend」と「TransparentBlt」で説明したように、/delayload を使用して msimg32.lib の読み込みを遅延する必要があります。

参照

参照

CImage クラス