Limitazioni di CImage con i sistemi operativi precedenti
Molte funzioni di CImage funzionano solo con le versioni più recenti di windows: Windows 95/98 o Windows NT 4.0, Windows 2000.In questo articolo vengono descritte le limitazioni della versione di determinati metodi.
Lavoro di CImage::MaskBlt e diCImage::PlgBlt solo con Windows NT 4.0 o versioni successive.Non funzioneranno per le applicazioni in esecuzione su Windows 95/98 o versione successiva.
Lavoro di CImage::TransparentBlt e diCImage::AlphaBlend solo con Windows 2000 o versioni successive e Windows 98 o versioni successive in quanto è necessario accedere con msimg32.lib per utilizzare questi metodi.(Questa raccolta è disponibile solo per le applicazioni che eseguono Windows 2000 o versioni successive e Windows 98 o successiva.)
È possibile importare AlphaBlend e TransparentBlt in un'applicazione eseguita in Windows 95 o Windows NT 4.0 solo se questi metodi non vengono mai chiamati.Se l'applicazione include questi metodi e deve essere in esecuzione nei sistemi operativi precedenti, è necessario utilizzare /delayload del linker per ritardare il caricamento di msimg32.lib.Finché l'applicazione non chiama uno di questi metodi mentre è in esecuzione in Windows NT 4.0 o Windows 95, non tenta di caricare msimg32.lib.È possibile controllare se il supporto della trasparenza è disponibile tramite il metodo di CImage::IsTransparencySupported .
Esempio
if (CImage::IsTransparencySupported())
{
// Safe to call CImage::AlphaBlend and CImage::TransparentBlt
}
else
{
// Transparency not supported. Fall back to something else.
}
Per compilare un'applicazione che chiama i metodi, inserire un'istruzione #define _WIN32_WINNT prima di #including le intestazioni di sistema, a indicare che la versione di windows è uguale o superiore a 5,0:
#define _WIN32_WINNT 0x0501
Se l'applicazione non deve essere eseguito in un sistema operativo precedente di Windows 2000 o Windows 98, è possibile accedere direttamente a msimg32.lib senza utilizzare /delayload.
CImage::Draw si comporta in modo diverso quando è utilizzato con Windows 2000 e Windows 98 che fare con Windows NT 4.0 o Windows 95.
Se si compila l'applicazione con _WIN32_WINNT impostato su un valore inferiore a 0x0500, Draw eseguito, ma non gestirà la trasparenza automaticamente nei sistemi con Windows 2000 e Windows 98 e versioni successive.
Se si compila l'applicazione con _WIN32_WINNT impostato a 0x0500 o superiore, Draw manterrà la trasparenza automaticamente nei sistemi con Windows 2000 o Windows 98 e versioni successive.Viene inoltre eseguito, ma senza supporto di trasparenza, con Windows NT 4.0 e Windows 95; tuttavia, è necessario utilizzare /delayload per ritardare il caricamento di msimg32.LIB, come descritto in precedenza per AlphaBlend e TransparentBlt.