gpt4 book ai didi

delphi - 将 websnap 应用程序升级到 delphi 2005 - CoInitialize 错误

转载 作者:行者123 更新时间:2023-12-03 15:27:47 26 4
gpt4 key购买 nike

我们当前有一个用 Delphi 6 websnap 编写的产品,我正在尝试将其升级到在 delphi 2005 下运行。它使用ADO,运行时的错误是“CoInitialize has not be called”。我能找到的对此错误的唯一引用指向 IntraWeb 和名为 ServerController 的东西,我不确定它是否与我相关。任意次数的 CoInitialize(nil) 调用都没有效果。

我是在浪费时间让它运行吗?还是可以在 2005 年或更高版本下运行?

最佳答案

CoInitialize 需要在进行 COM 访问的线程中调用(例如,在通过 ADO 访问数据库的任何线程中)。 Delphi默认在主线程中调用它,但您需要在其他线程中显式调用它。

尝试在OnActivate事件中调用它,并在OnDeactivate事件中调用CoUninitialize

还要确保 ADOTables 和 ADOConnections 在设计时未打开。否则,应用程序将在您调用 CoInitialize 之前尝试使用 COM。

如果所有其他方法都失败 - 尝试覆盖 Web 表单的构造函数并在调用继承之前将 CoInitialize 放入其中。不要忘记在析构函数中调用CoUninitialize

关于delphi - 将 websnap 应用程序升级到 delphi 2005 - CoInitialize 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6123510/

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