CImage-Einschränkungen mit älteren Betriebssystemen

Viele CImage-Funktionen funktionieren nur mit aktuelleren Versionen von Windows: Windows 95/98 oder Windows NT 4.0 oder Windows 2000.In diesem Artikel werden die Einschränkungen der Version bestimmte Methoden.

CImage::PlgBlt und CImage::MaskBlt funktionieren nur mit Windows NT 4.0 oder höher.Sie können nicht an Anwendungen unter Windows 95/98 oder höher ausgeführt wird.

CImage::AlphaBlend und CImage::TransparentBlt funktionieren nur mit Windows 2000 oder höher und Windows 98 oder höher, da Sie mit msimg32.lib verknüpfen müssen, um diese Methode zu verwenden.(Diese Bibliothek ist nur für Anwendungen verfügbar, auf denen Windows 2000 oder höher und Windows 98 oder höher) ausgeführt werden.

Sie können AlphaBlend und TransparentBlt in einer Anwendung einschließen, die unter Windows 95 oder Windows NT 4.0 ausgeführt wird, wenn diese Methode nie aufgerufen werden.Wenn die Anwendung diese Methoden umfasst und sie in früheren Betriebssystemen ausgeführt werden muss, müssen Sie /delayload des Linkers verwenden, um das Laden von msimg32.lib zu verzögern.Solange Ihre Anwendung keine dieser Methoden bei der Ausführung unter Windows NT 4.0 oder Windows 95 aufgerufen wird, versucht es nicht, msimg32.lib zu laden.Sie können überprüfen, ob Transparenz unterstützen 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.
}

Um eine Anwendung zu kompilieren die diese Methode aufruft, fügen Sie eine #define _WIN32_WINNT Anweisung ein bevor Sie eine #including Header des Systems angeben und die Version von Windows größer oder gleich 5.0 ist:

#define _WIN32_WINNT 0x0501

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

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

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

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

Siehe auch

Referenz

CImage-Klasse