Freigeben über


Einschränkungen für CImage in früheren Betriebssystemen

Viele CImage-Funktionen funktionieren nur mit neueren Windows-Versionen: Windows 95/98 oder Windows NT 4.0 oder Windows 2000. In diesem Artikel werden die Versionseinschränkungen bestimmter Methoden.

CImage::PlgBlt und CImage::MaskBlt arbeiten mit nur Windows NT 4.0 oder höher. Sie arbeiten nicht an Anwendungen unter auf Windows 95/98 oder höher.

CImage::AlphaBlend und CImage::TransparentBlt arbeiten mit nur Windows 2000 oder höher und Windows 98 oder höher, da Sie mit msimg32.lib verknüpfen müssen, um diese Methoden zu verwenden. (Diese Bibliothek ist nur für Anwendungen verfügbar, die Windows 2000 oder höher und Windows 98 oder höher. ausführen)

Sie können AlphaBlend und TransparentBlt in einer Anwendung beinhalten, die auf Windows 95 oder Windows NT 4.0 ausgeführt wird, wenn diese Methoden nicht aufgerufen werden. Wenn die Anwendung diese Methoden enthält und sie auf frühere Betriebssysteme ausgeführt werden muss, müssen Sie /delayload des Linkers verwenden, um das Laden von msimg32.lib hinauszuzögern. Solange die Anwendung keine dieser Methoden bei Ausführung unter Windows NT 4.0 oder Windows 95 aufruft, versucht sie nicht, msimg32.lib zu laden. Sie können überprüfen, ob Transparenzunterstützung verfügbar ist, die CImage::IsTransparencySupported-Methode anwendend.

Beispiel

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

Zum Kompilieren einer Anwendung die diese Methoden aufruft, fügen Sie eine #define _WIN32_WINNT Anweisung ein bevor Sie eine #including Systemheadern dupliziert wird und angeben dass die Version von Windows gleich oder größer als 5.0 ist:

#define _WIN32_WINNT 0x0501

Wenn die Anwendung nicht erforderlich, um auf ein Betriebssystemälteres als Windows 2000 oder Windows 98 ausgeführt werden, können Sie direkt zu msimg32.lib verknüpfen, ohne eine /delayload zu verwenden.

CImage::Draw verhält sich anders, wenn es bei Windows 2000 und Windows 98 verwendet wird, als das mit Windows NT 4.0 oder Windows 95.

Wenn Sie die Anwendung mit _WIN32_WINNT kompilieren, das auf einen Wert kleiner als 0x0500 festgelegt ist, verwendet Zeichnen, jedoch behandelt Transparenz nicht automatisch auf Systemen, die Windows 2000 und Windows 98 und höher ausgeführt.

Wenn Sie die Anwendung mit 0x0500 festgelegtem oder größerem _WIN32_WINNT kompilieren, behandelt Zeichnen Transparenz automatisch auf Systemen, die Windows 2000 oder Windows 98 und höher ausgeführt. Er funktioniert auch, aber ohne Transparenzunterstützung, mit Windows NT 4.0 und Windows 95; jedoch müssen Sie /delayload verwenden, um das Laden von msimg32.LIB zu verzögern, wie für AlphaBlend und TransparentBlt oben beschrieben.

Siehe auch

Referenz

CImage Class