没有合适的资源?快使用搜索试试~ 我知道了~
delphi中提示“尚未调用coinitialize错误”的解决方法.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 90 浏览量
2021-12-19
09:26:38
上传
评论
收藏 70KB PDF 举报
温馨提示
试读
2页
。。。
资源推荐
资源详情
资源评论
2009-10-26 12:30
CoInitialize(LPVOID),它将以特定参数调用 CoInitializeEx,为当前单元初
始化 COM 库,并标记协同模式为单线程模式。参数必须为 NULL。这是关于 OLE
和 COM 的问题。
CoInitializeEx(LPVOID),新版本,可以用参数指定协同模式,
如多线程模式,但注意单元的协同模式是不能改的,如果在已经初始化为多线程
的单元里初始化 OLE 将失败并返回 RPC_E_CHANGED_MODE。每个线程只要调用一
次初始化就够了,同一线程中的后续调用也将通过,但会返回 S_FALSE。后面解
除初始化调用要与本调用一一对应,返回 S_FALSE 的 CoInitialize 调用也计算
在内。应用程序的第一个线程将调用
CoInitializeEx(COINIT_APARTMENTTHREADED 或 0),必须是最后一个解除初始化
的。如果不按上面的顺序进行初始化/解除函数调用,在该单线程单元(STA)里后
续的初始化调用将失败,应用程序将无法工作。由于无法控制本地服务器的载入
/御载顺序,在 DLLMain 里调用初始化/解除函数是不安全的。
例:
1)在 DLL 中使用 ADO 数据库组件时,调用程序调用该 DLL 时会出现"尚未调用
CoInitialize"错误,解决的办法是在程序初始化时调用 CoInitialize(nil)
方法。
initialization
CoInitialize(nil);
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *}
finalization
CoUninitialize;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * *}
2) 把 WebBrowser 封装到 Dll 里面调用的时候总是说“尚未调用
CoInitialize。”,"CoInitialize has not been called"或“尚未调用
CoInitialize。”的解决方法。
用 TWebBrowser 显示 HTML 文档时或者把 WebBrowser 封装到 Dll 里面调用的时候
总是说“尚未调用 CoInitialize。”,解决方法:
在“开始 -> 运行”中输入 regsvr32 shdocvw.dll
然后在 uses 中加入 ActiveX,老版本的加入 OLE2;
uses
ActiveX, // 确认加入这个单元
// 老版本的 Delphi 用 OLE2 代替
1
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功