tomwillow
2016-01-30 07:58
采纳率: 100%
浏览 1.9k

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条回答 默认 最新

  • blownewbee 2016-01-30 08:44
    已采纳

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

    点赞 1 打赏 评论

相关推荐 更多相似问题