【问题标题】:FlatSB_GetScrollInfo could not be located in ... COMCTL32.dllFlatSB_GetScrollInfo 不能位于 ... COMCTL32.dll
【发布时间】:2011-06-18 16:30:52
【问题描述】:

我刚刚将一个产品从 C++Builder 2007 升级到 RAD Studio XE,同时更改了一些第三方组件。

现在,当我在 Vista 上运行我的产品时,我收到以下错误:


Project1.exe - 未找到入口点

无法在动态链接库 COMCTL32.DLL 中找到过程入口点 FlatSB_GetScrollInfo。

好的


当我在十六进制编辑器中打开 COMCTL32.DLL 时,我确实找到了 FlatSB_GetScrollInfo 名称。我只在 \Windows\ 文件夹下找到 COMCTL32.DLL 文件,没有本地安装。

有人知道是什么原因造成的吗?

【问题讨论】:

    标签: windows c++builder comctl32 c++builder-xe


    【解决方案1】:

    flat scroll bar 函数未在您可能链接的 v6 comctl32 中实现。

    平面滚动条功能在 Comctl32.dll 版本 4.71 到 5.82 中实现。 Comctl32.dll 6.00 及更高版本不支持平面滚动条。

    VCL 代码不会使用这些函数,所以我认为您需要找到这样做的第 3 方组件。我猜想迁移到 XE 引入了 comctl32 v6 清单并暴露了这个问题。

    另一方面,您始终可以删除 v6 清单,这将解决此特定问题,但您的应用程序将使用经典主题,并且看起来您正在再次运行 Windows 2000!

    【讨论】:

    • 谢谢大卫。奇怪的是,它失败的 PC 有 COMCTL32.dll 版本 5.82.6000.16386 并且函数名称存在于文件中。清单确实需要通用控件版本 6.0.0.0,但使用 BCB 2007 构建的版本也需要,它运行良好。我很困惑。
    • @Brian 你必须明白,从 XP 开始,所有系统都附带两个版本的 comctl32,v5 和 v6。我敢肯定,如果您查看 BCB2007 程序(例如 Process Explorer)中实际加载的 comctl32 版本,您会发现它使用的是 v5。
    • 这能回答你的问题吗?
    • 或多或少 :) 它帮助我朝着正确的方向前进,非常感谢大卫。我的清单有问题。我需要将自动生成的清单替换为添加更多依赖项的清单,因为我使用免注册 COM 对象。在我获取原始的自动生成的清单后,将我自己的东西添加到其中,禁用项目上的“启用主题支持”,然后在资源文件中添加我自己的清单 - 它神奇地起作用了。
    • @Brian 这听起来很合理,尽管我建议您寻找扁平滚动条并用更现代的东西替换它们,然后让自己转向 v6 comctl 和更现代的外观。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多