gpt4 book ai didi

delphi - 我可以检查 CoInitialize 是否已被调用吗?

转载 作者:行者123 更新时间:2023-12-03 14:35:41 26 4
gpt4 key购买 nike

在具有ADO数据库连接的多线程环境中,我想知道CoInitialize是否已被调用。我该如何检查这个?

最佳答案

通常情况下,您不应该执行此检查,而只需调用 CoInitialize/CoUnInitialize 对。你仍然可以这样做:

function IsCoInitialized: Boolean;
var
HR: HResult;

begin
HR:= CoInitialize(nil);
Result:= (HR and $80000000 = 0) and (HR <> S_OK);
if (HR and $80000000 = 0) then CoUnInitialize;
end;
<小时/>

如果在一个线程中多次调用CoInitialize,也没有问题。第一次调用应返回 S_OK,所有后续调用应返回 S_FALSE。所有这些调用都被认为是成功的,并且应该与 CoUnInitialize 调用配对。如果您在一个线程中调用 CoInitialize n 次,则只有最后 n 个 CoUnInitialize 调用才会关闭 COM。

关于delphi - 我可以检查 CoInitialize 是否已被调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14542655/

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