我正在尝试使用TaskDialog创建一个消息框。我正在链接Comctl32.lib,但这些示例对我不起作用。一切都编译和链接很好,但不是我的消息框显示我得到一个不同的消息框与文本"序号344不能位于动态链接库"。应用程序启动时似乎会出现问题,而不是在调用TaskDialog时。不链接Comctl32.lib将修复它,但对TaskDialog
的任何调用都将导致未定义的引用链接器错误。
我在Windows 10 64位上使用Visual Studio Community 2017。该应用程序正在编译为64位。
为什么这些例子没有运行?
答案 0 :(得分:0)
TaskDialogs仅存在于ComCtl32 v6中。
Windows XP及更高版本(SxS)上有两个版本的ComCtl32.dll。 v5.8x是默认值,您需要选择加入v6,因为可能与新的主题/视觉样式不兼容。大多数新功能和控件仅添加到v6。
要获得v6,您必须add a manifest到您的应用程序。建议您将清单嵌入应用程序资源中,但也可以使用外部清单;只需将XML文件命名为yourappname.exe.manifest
。