如何指定使用哪个版本的ComCtl32.dll?

赤勇玄心行天道 2019-03-13 10:35:18
我根据MSDN的文档:https://docs.microsoft.com/zh-cn/windows/desktop/Controls/common-control-versions,知道了ComCtl32.dll文件不同版本的功能有区别,并且说查看ComCtl32.dll的版本要去C:\Windows\System32\ComCtl32.dll这里,我的电脑里这个文件的版本是5.82的,我发现电脑里的其他路径下有6.10版本的ComCtl32.dll文件。

那么问题来了,如果我想要程序使用6.0以上版本的应该怎么设置?MSDN的文档说用_WIN32_IE宏来控制,但是我发现好像没有达到想要的效果,这个宏只是在代码里做了一些#if的判断而已,没有实际控制用什么版本的ComCtl32.dll文件。

恳请各路大神帮忙!
...全文
678 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2019-03-15
  • 打赏
  • 举报
回复
引用 5 楼 代码之王 的回复:
[quote=引用 2 楼 zgl7903 的回复:]
manifest 就是做这个用的


大神,能说详细点吗?这个manifest到底怎么用的?[/quote]

你用的什么VS版本? VS2005以上的 用向导生成MFC的程序在stdafx.h 中已经加入了这个声明, 只要项目选择UNICODE编译模式即可
老版本的VS 把Manifest字段写成一个xlm文件 作为资源添加到 "24" ID=1
https://wenku.baidu.com/view/347d717569dc5022abea0049.html


schlafenhamster 2019-03-14
  • 打赏
  • 举报
回复
//在工程的 stdafx.h头文件里面加入如下代码行:
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif
*/
蒋晟 2019-03-14
  • 打赏
  • 举报
回复
Enabling Visual Styles https://docs.microsoft.com/en-us/windows/desktop/controls/cookbook-overview
zgl7903 2019-03-14
  • 打赏
  • 举报
回复
manifest 就是做这个用的

  • 打赏
  • 举报
回复
引用 2 楼 zgl7903 的回复:
manifest 就是做这个用的


大神,能说详细点吗?这个manifest到底怎么用的?
smwhotjay 2019-03-14
  • 打赏
  • 举报
回复
应该是和编译器相关。比如vc6 mfc库是mfc42 ,vs2003 的mfc库是mfc71 c++ msvcr7 特定的编译器使用特定的版本

15,977

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧