gpt4 book ai didi

c++ - CDS 客户端数据集文件 - 是否有其他方法来操作这些文件?

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:48 28 4
gpt4 key购买 nike

我有一个 C++ 应用程序,它以前使用 Delphi IClientTable 接口(interface)(MIDAS.DLL??)来维护本地文件数据库(.CDS 文件)。在我们的 C++ 应用程序中,IClientTable 是一个 COleDispatchDriver MFC 接口(interface)/对象。

我个人希望完全摆脱这种做法并使用 SQLite,但遗憾的是我现在无法做到这一点。

有人可以告诉我这个 COM 开销是否有开源替代品吗?我想要一个简单的 DLL、库或一组源文件来编译到我的程序中,以摆脱让我非常痛苦的 COM 接口(interface)。

如果您真的想知道我为什么要摆脱 COM 接口(interface)——这很奇怪——我们已经毫无问题地使用它 10 年了。最近我们发现一个使用 Windows XP Embedded 的客户,由于某种原因,当我们使用 IClientTable COM 调度接口(interface)时,这会导致 Windows WM_QUERYENDSESSION 消息被吸收,或者不再到达我的应用程序。在我停止使用 IClientTable 接口(interface)的那一刻,我收到了 WM_QUERYENDSESSION 消息。

简而言之:IClientTable COM 调度接口(interface)似乎阻止 Windows 被允许注销/关机。

最佳答案

我不知道有任何其他方法可以打开二进制 ClientDataSet 文件。 ClientDataSets 也可以使用 XML 文件格式,但我不知道您的 IClientTable 接口(interface)是否允许您访问该功能。

如果您不知道这一点,我认为 Delphi 2007 或 Delphi 2009 中已经删除了 ClientDataSet 对 COM 的依赖性。在最新版本的 Delphi 中重新编译包装器 DLL 可能会有所帮助,如果 COM 依赖项来自 ClientDataSet。

据我所知,在任何版本的 Delphi 中都没有 IClientTable 这样的东西。我猜 IClientTable 是您的团队为封装 ClientDataSet 的功能而编写的包装器 DLL 的一部分。如果编写该包装器 DLL 的人将 IClientTable 接口(interface)公开为 COM 对象,这也可能是您依赖 COM 的部分原因。

关于c++ - CDS 客户端数据集文件 - 是否有其他方法来操作这些文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9935004/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com