Partilhar via


Limitações de CImage com sistemas operacionais anteriores

Muitas funções de CImage funcionam apenas com versões mais novas do windows: Windows 95 e Windows NT 98 ou 4.0, ou Windows 2000. Este artigo descreve limitações da versão de certos métodos.

CImage::PlgBlt e CImage::MaskBlt funcionam apenas com o Windows NT 4.0 ou posterior. Não funcionarão em aplicativos que executam o Windows 95 e no 98 ou posterior.

CImage::AlphaBlend e CImage::TransparentBlt funcionam apenas com o Windows 2000 ou posterior e o Windows 98 ou posterior porque você deve estabelecer um vínculo com msimg32.lib para usar esses métodos. (Essa biblioteca estiver disponível para aplicativos que executam o Windows 2000 ou posterior e o Windows 98 ou posterior.)

Você pode incluir AlphaBlend e TransparentBlt em um aplicativo que é executado no Windows 95 ou Windows NT 4.0 somente se esses métodos nunca são chamado. Se seu aplicativo incluir esses métodos, e deve ser executado em sistemas operacionais anteriores, você deve usar /delayload do vinculador para reter a carga de msimg32.lib. Como seu aplicativo não chama um desses métodos ao executar no Windows NT 4.0 ou Windows 95, não tentará carregar msimg32.lib. Você pode verificar se o suporte de transparência está disponível por meio do método de CImage::IsTransparencySupported .

Exemplo

if (CImage::IsTransparencySupported())
{
   // Safe to call CImage::AlphaBlend and CImage::TransparentBlt
}
else
{
   // Transparency not supported.  Fall back to something else.
}

Para criar um aplicativo que chama esses métodos, insira uma instrução de #define _WIN32_WINNT antes de #including qualquer cabeçalho do sistema, indicando que a versão do windows for igual a ou maior que 5,0:

#define _WIN32_WINNT 0x0501

Se seu aplicativo não precisa executar em um sistema operacional mais antiga do que o Windows 2000 ou Windows 98, você pode vincular diretamente a msimg32.lib sem usar /delayload.

CImage::Draw se comporta de modo diferente quando usado com o Windows 2000 e Windows 98 do que faz com o Windows NT 4.0 ou Windows 95.

Se você criar seu aplicativo com o _WIN32_WINNT definido como um valor menor que 0x0500, Desenhar funcionará, mas não tratará a transparência automaticamente nos sistemas que executam o Windows 2000 e Windows 98 e versões posteriores.

Se você criar seu aplicativo com o _WIN32_WINNT definido como 0x0500 ou maior, Desenhar tratará a transparência automaticamente nos sistemas que executam o Windows 2000 ou Windows 98 e versões posteriores. Também funcionará, mas sem suporte de transparência, com o Windows NT 4.0 e Windows 95; porém, você deve usar /delayload para reter a carga de msimg32.LIB, como descrito acima para AlphaBlend e TransparentBlt.

Consulte também

Referência

Classe CImage