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