ComCtl32.dll Ordinal 345 未找到错误仅在 Windows XP 上

问题描述 投票:0回答:1

出于多种原因,我需要制作一个在 Windows XP 及更高版本上运行的应用程序。我正在使用 ComCtl32.dll 调用 TaskDialogIndirect。唯一的问题是错误“序号 345 无法位于...”仅出现在 Windows XP 上。该程序在所有其他版本上运行良好。我的 .rc 文件中确实有一个 ID 为 1 的清单。我目前主要使用的唯一东西来自

我在网上找不到这个问题的解决方案。

我的清单:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="*"
    name="redacted"
    type="win32"
/>
<description>redacted</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

我对 InitCommonControlsEx 的调用:

INITCOMMONCONTROLSEX icc;
    icc.dwSize = sizeof(icc);
    icc.dwICC = ICC_STANDARD_CLASSES;
    InitCommonControlsEx(&icc);
c++ winapi visual-c++ windows-xp comctl32
1个回答
2
投票

首先,TaskDialogIndirect 支持的最低客户端要求是 Windows Vista,您可能还想查看 this

您最好的选择可能是XTaskDialog。这可以很好地模拟 Windows 98、Windows ME、Windows 2000、Windows XP 和 Windows 2003 等下层操作系统的 Vista 任务对话框 API。

© www.soinside.com 2019 - 2024. All rights reserved.