tomwillow 2016-01-29 23:58 采纳率: 100%
浏览 1882
已采纳

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

  • threenewbee 2016-01-30 00:44
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?