Win32视觉样式向后兼容性



当我在程序中嵌入视觉样式清单时,如下所示:

// Embed visual style XML manifest
#pragma comment(linker,                           
""/manifestdependency:type='Win32'"          
"   name='Microsoft.Windows.Common-Controls'" 
"   version='6.0.0.0'"                        
"   processorArchitecture='*'"                
"   publicKeyToken='6595b64144ccf1df'"        
"   language='*'""                           
)
// Link common controls library
#pragma comment(lib, "ComCtl32.lib")

这是否意味着我的程序只能在Windows XP上运行?或者,如果计算机上没有视觉样式,他们会只使用操作系统的默认样式吗?我之所以这么问,是因为我在用visual Studio 2008开发的程序中启用了视觉样式,我想知道它可以在什么版本的Windows上运行。我应该检查WINVER,看看它们是否运行支持视觉样式的版本吗?如果是,我应该在预处理器中检查哪个版本号。我想知道的另一件事是,如果没有视觉样式,我可以运行程序的最低版本是什么?

这意味着我的程序只能在Windows XP上运行吗?或者如果可见款式不在电脑上,他们会用操作吗系统默认样式?

后者是真的,文档定义了确切的行为(重点是我的):

如果希望应用程序使用视觉样式,则必须添加应用程序清单或编译器指令,指示如果可用,则应使用ComCtl32.dll版本6

同一页中的另一部分介绍了在向后兼容性方面应注意的一些事项:使您的应用程序与早期版本的Windows兼容。关于视觉风格,它指出:

许多视觉风格的架构都是为了让继续在早期版本的Windows上提供您的产品不支持更改控件的外观。

这不是问题。清单只是简单地告诉Windows您想要版本6的通用控件DLL。存储在并行缓存(c:\windows\winsxs)中的,而不是存储在c:\windows\system32中的旧缓存。并行缓存是DLL地狱计数器,它可以存储具有相同名称的不同版本的DLL。

清单对早期版本的Windows没有影响,这些版本对清单一无所知,所以不知道如何查找它们。

相关内容

  • 没有找到相关文章

最新更新