Ograniczenia funkcji CImage w przypadku starszych systemów operacyjnych
Wiele CImage funkcje działają tylko z nowszymi wersjami systemu Windows: Windows 95/98 lub Windows NT 4.0 lub Windows 2000.W tym artykule opisano ograniczenia wersji pewnych metod.
CImage::PlgBlt i CImage::MaskBlt współpracują tylko systemu Windows NT 4.0 lub nowszy.Nie będą one działać na aplikacje uruchomione w systemie Windows 95/98 lub nowszym.
CImage::AlphaBlend i CImage::TransparentBlt współpracują tylko systemu Windows 2000 lub nowszego i Windows 98 lub nowszy, ponieważ należy połączyć z msimg32.lib do korzystania z tych metod. (Ta biblioteka jest dostępne tylko dla aplikacji z systemem Windows 2000 lub nowszym oraz Windows 98 lub nowszy).
Można dołączyć AlphaBlend i TransparentBlt w aplikacji, która pracuje w systemie Windows 95 lub Windows NT 4.0, tylko wtedy, gdy te metody nigdy nie byłby wywoływany.Jeśli aplikacja zawiera tych metod, a musi być uruchomione w starszych systemach operacyjnych, należy użyć linker /delayload do opóźnienia ładowania msimg32.lib.Tak długo, jak długo aplikacja nie wymaga jednej z tych metod uruchomionej w systemie Windows NT 4.0 lub Windows 95, nie będzie próbował załadować msimg32.lib.Można sprawdzić, czy obsługi przezroczystości jest dostępne przy użyciu CImage::IsTransparencySupported metody.
Przykład
if (CImage::IsTransparencySupported())
{
// Safe to call CImage::AlphaBlend and CImage::TransparentBlt
}
else
{
// Transparency not supported. Fall back to something else.
}
Aby skompilować aplikację, która wywołuje te metody, należy wstawić #define instrukcja _WIN32_WINNT przed #including wszystkie nagłówki systemu, wskazując, że wersja systemu Windows jest równa lub większa niż 5.0:
#define _WIN32_WINNT 0x0501
Jeśli aplikacja nie wymaga do uruchomienia w systemie operacyjnym, starszych niż Windows 2000 lub Windows 98, można połączyć bezpośrednio msimg32.lib bez użycia /delayload.
CImage::Draw zależy od używanego z systemami Windows 2000 i Windows 98, niż w systemie Windows NT 4.0 lub Windows 95.
Jeśli kompilacja aplikacji z _WIN32_WINNT ustawioną na wartość mniejszą niż 0x0500, narysować będzie działało, ale nie obsłuży przezroczystość automatycznie na komputerach z systemem Windows 2000 i Windows 98 i nowszych.
Jeśli skompilować swojej aplikacji z _WIN32_WINNT ustawiona na 0x0500 lub większej, narysować będzie obsługiwać przezroczystość automatycznie na komputerach z systemem Windows 2000 lub Windows 98 i nowszych.Może ona również działać, ale bez obsługi przezroczystości z systemu Windows NT 4.0 i Windows 95; Jednakże, należy użyć /delayload do ładowania msimg32 opóźnienia.LIB, jak opisano powyżej dla AlphaBlend i TransparentBlt.