tomwillow
tomwillow
采纳率100%
2016-01-30 07:58

VS2010编译的带manifest的C窗口程序,在XP上运行无法显示控件

阅读了很多清单文件的资料,还是有疑问。
.C程序是一个窗口上有一个按钮,调用的API(非MFC),只要加上了清单文件就无法在XP上正常运行,能打开窗口,但不显示XP风格的控件,因为MessageBox上面有按钮连带地MessageBox也弹不出来。

下面是我在程序中加上的内容(换成.manifest文件引用结果一样):
#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

我仔细看了虚拟机装的XP系统的WinSxS目录下,有名字带Microsoft.Windows.Common-Controls的文件夹,版本等都一致。不知道为什么程序就是运行不正常。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 5年前

    在你的程序中调用comctl32的InitCommonControls了么

    点赞 评论 复制链接分享

为你推荐