与以前的操作系统的CImage限制
许多 CImage 功能仅适用于窗口时使用的新版本:Windows 95 /98 或 Windows NT 4.0 或 Windows 2000。 本文介绍某些方法的版本限制。
CImage::PlgBlt 和 CImage::MaskBlt 仅使用 Windows NT 4.0 或更高版本一起使用。 在应用程序将不能在运行 Windows 95 /98 或更高版本的它们。
,因为必须与 msimg32.lib 链接使用这些方法,CImage::AlphaBlend 和 CImage::TransparentBlt 与 Windows 2000 或更高版本以及仅 Windows 98 或更高版本。 (此库到正在运行 Windows 2000 或更高版本以及 Windows 98 或更高版本的应用程序可用。)
在 Windows 95 或 Windows NT 4.0 上运行的应用程序中包含 AlphaBlend 和 TransparentBlt ,只有当这些方法不会调用。 如果应用程序包含这些方法,因此,它在以前的操作系统必须运行,则必须使用链接器的 /delayload 延迟 msimg32.lib 加载。 只要应用程序不调用这些方法之一,当运行在 Windows NT 4.0 或 Windows 95 时,它下都不会尝试加载 msimg32.lib。 您可以检查透明度是否支持可用使用 CImage::IsTransparencySupported 方法。
示例
if (CImage::IsTransparencySupported())
{
// Safe to call CImage::AlphaBlend and CImage::TransparentBlt
}
else
{
// Transparency not supported. Fall back to something else.
}
在 #including 任何系统头文件之前生成调用这些方法的应用程序,插入 #define _WIN32_WINNT 语句,指示的 windows 版本等于或大于 5.0:
#define _WIN32_WINNT 0x0501
如果应用程序在操作系统比 Windows 2000 或 Windows 98 不需要运行旧,您可以直接与 msimg32.lib 链接,而无需使用 /delayload。
CImage::Draw 比执行与 Windows NT 4.0 或 Windows 95 的行为不同,当使用 Windows 2000 和 Windows 98。
如果不 0x0500 生成与 _WIN32_WINNT 的应用程序设置为值小于, 翻牌 仍有效,但是,它在运行 Windows 2000 和 Windows 98 的系统自动将不处理透明度和更高版本。
如果生成具有更大的 _WIN32_WINNT 的应用程序设置为 0x0500 或, 翻牌 在运行 Windows 2000 或 Windows 98 的系统自动都会处理透明度和更高版本。 它还,,但,不使用透明度支持,与 Windows NT 4.0 和 Windows 95 一起使用;但是,您必须使用 /delayload 延迟 msimg32.LIB 加载,如上所述 AlphaBlend 和 TransparentBlt的。