Limitaciones de CImage con sistemas operativos anteriores
Muchas funciones de CImage solo funcionan con versiones más recientes de Windows: Windows 95/98 ni Windows NT 4.0, o Windows 2000. En este artículo se describe las limitaciones de la versión de determinados métodos.
CImage::PlgBlt y CImage::MaskBlt solo funcionan con Windows NT 4.0 o posterior. No funcionará en aplicaciones que se ejecutan en Windows 95/98 o posterior.
CImage::AlphaBlend y CImage::TransparentBlt solo funcionan con Windows 2000 o posterior y Windows 98 o posterior porque debe vincular con msimg32.lib para utilizar estos métodos. (Esta biblioteca solo está disponible para las aplicaciones que ejecutan Windows 2000 o posterior y Windows 98 o posterior.)
Puede incluir AlphaBlend y TransparentBlt en una aplicación que se ejecuta en Windows 95 o Windows NT 4.0 únicamente si estos métodos nunca obtienen denominado. Si la aplicación incluye estos métodos, y debe ejecutarse en sistemas operativos anteriores, debe utilizar /delayload del vinculador para retrasar la carga de msimg32.lib. Mientras la aplicación no llame a uno de estos métodos mientras se ejecuta en Windows NT 4.0 o Windows 95, no intentará cargar msimg32.lib. Puede comprobar si la compatibilidad de transparencia esté disponible mediante el método de CImage::IsTransparencySupported .
Ejemplo
if (CImage::IsTransparencySupported())
{
// Safe to call CImage::AlphaBlend and CImage::TransparentBlt
}
else
{
// Transparency not supported. Fall back to something else.
}
Para compilar una aplicación que llama a estos métodos, inserte una instrucción #define _WIN32_WINNT antes de #including los encabezados de sistema, que indica que la versión de Windows es igual o mayor que 5,0:
#define _WIN32_WINNT 0x0501
Si la aplicación no necesita ejecutarse en un sistema operativo anterior a Windows 2000 o Windows 98, puede vincular directamente a msimg32.lib sin utilizar /delayload.
CImage::Draw se comporta de manera diferente cuando se utiliza con Windows 2000 y Windows 98 que hace con Windows NT 4.0 o Windows 95.
Si compila la aplicación con _WIN32_WINNT establecido en un valor menor que 0x0500, Dibujar funcionará, pero no controlará la transparencia automáticamente en sistemas que ejecutan Windows 2000 y Windows 98 y posterior.
Si compila la aplicación con _WIN32_WINNT establecido en 0x0500 o superior, Dibujar controlará la transparencia automáticamente en sistemas que ejecutan Windows 2000 o Windows 98 y posterior. También funcionará, pero sin compatibilidad de transparencia, con Windows NT 4.0 y Windows 95; sin embargo, debe utilizar /delayload para retrasar la carga de msimg32.LIB, como se describe más arriba para AlphaBlend y TransparentBlt.