gpt4 book ai didi

c++ - CRT 静态链接的 COM InProc 服务器的资源(例如 FLS 索引)耗尽

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

我认为静态链接(到 CRT,即 /MT 编译器选项)在构建小型工具时非常方便,感谢 < em>易于部署。 (Sysinternals tools 就像 Process Explorer 就是一个例子。)

但是,有人让我注意到 CRT 使用了一些资源,这些资源可能会在诸如插件架构(例如 shell 扩展)的上下文中耗尽:特别是 FLS index似乎是用完最快的一个,LoadLibrary() 在加载第 127 个 CRT 静态链接 DLL 时可能会失败。

我构建了一些 shell 扩展,但我从未遇到过这个问题。

有没有人遇到过 CRT 静态链接的进程内 COM 服务器(如 shell 扩展)的资源耗尽问题?

如果是这样,是否有一个“修复”(除了使用到 CRT 的动态链接,不幸的是,这会使部署复杂化,并且需要为 VCRedist 下载一些兆字节,而 CRT 静态链接的小东西只是少数数百千字节...)。

最佳答案

嗯,这有点像担心如果你有一个很好的备份以防 meteor 撞击毁坏机器。您的 shell 扩展的用户不久前就会发现有什么问题。每次他使用"file"+“打开”对话框时,都会将 100 多个 DLL 注入(inject)到一个进程中,这并不会被忽视,该程序在 5 秒或更长时间内对世界来说是死的。

所以要么他做点什么,然后用 SysInternals 的 AutoRuns 之类的实用程序清理他的机器。如果您的扩展足够有用,您将幸免于难。或者用户不采取任何对策并且很高兴有一个硬性上限。您的扩展程序将失败,但用户无法说明原因。您可能会接到支持电话,您知道该怎么做。

关于c++ - CRT 静态链接的 COM InProc 服务器的资源(例如 FLS 索引)耗尽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19212096/

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