Ograniczenia CImage z wcześniejszych systemów operacyjnych
Wiele CImage funkcje działają tylko z nowszymi wersjami systemu Windows: Windows 95 i 98 lub Windows NT 4.0 lub Windows 2000.W tym artykule opisano ograniczenia wersji niektórych metod.
CImage::PlgBlt i CImage::MaskBlt pracy tylko system Windows NT 4.0 lub nowszej.Nie będą one działać na aplikacje uruchomione w systemie Windows 95 i 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 tych metod.(Ta biblioteka jest dostępna tylko dla aplikacji z systemem Windows 2000 lub nowszego i Windows 98 lub nowszym.)
Można uwzględnić AlphaBlend i TransparentBlt w aplikacji, która działa w systemie Windows 95 lub Windows NT 4.0, tylko w przypadku, gdy te metody nigdy wywoływany.Jeśli aplikacja zawiera tych metod należy uruchomić w starszych systemach operacyjnych, należy użyć łączącego łączącego/DelayLoad opóźnienie ładowania msimg32.lib.Jak aplikacja nie wywołania jednej z tych metod uruchomionej w systemie Windows NT 4.0 lub Windows 95, nie będą próbować załadować msimg32.lib.Sprawdź, czy obsługi przezroczystości jest dostępne za pomocą 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, Wstaw # zdefiniować wyrażenie _WIN32_WINNT przed #, włączając wszelkie nagłówki systemu, wskazująca, że wersja systemu Windows jest równa lub większa niż 5.0:
#define _WIN32_WINNT 0x0501
Jeśli aplikacja nie trzeba uruchamiać w systemie operacyjnym, starszych niż Windows 2000 lub Windows 98, można połączyć bezpośrednio msimg32.lib bez korzystania z łączącego/DelayLoad.
CImage::Draw zachowuje się inaczej, gdy używana z systemu 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, Rysuj będzie pracy, ale nie obsługuje przezroczystość automatycznie w systemach z systemem Windows 2000 i Windows 98 lub nowszym.
Jeśli skompilować użytkownika aplikacji z _WIN32_WINNT ustawiona na 0x0500 lub większą, Rysuj obsługuje przezroczystość automatycznie w systemach z systemem Windows 2000 lub Windows 98 lub nowszym.Będzie również działać, ale bez wsparcia przezroczystości z systemu Windows NT 4.0 i Windows 95; Jednakże, należy użyć łączącego/DelayLoad do ładowania msimg32 opóźnienia.LIB, jak opisano powyżej dla AlphaBlend i TransparentBlt.