Condividi tramite


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.

Vedere anche

Riferimenti

Classe CImage