gpt4 book ai didi

c++ - 在 COM 对象上使用 std::map?

转载 作者:行者123 更新时间:2023-11-28 08:11:09 25 4
gpt4 key购买 nike

我正在尝试创建 COM 对象到特定散列的映射,例如字符串的映射。这是我正在实现的缓存算法。这个想法是,如果你试图加载一个已经被前一行代码打开的文件,它会将已经创建的内存块作为 IStream 返回,而不会费心将文件重新加载到内存中。我遇到的一个问题是 COM 对象在最后一个引用被删除时自动销毁自身。原始容器不知道对象已经被销毁,当你去访问一个已经被释放的对象时,它返回无效的内存句柄而不是加载文件。有没有更好的方法来实现这个,还是我应该放弃 STL 而改为制作我自己的容器?

最佳答案

这是一个错误,将接口(interface)指针放入容器的代码忘记调用 AddRef()。 永远不要在不增加引用计数的情况下存储指向 COM 接口(interface)的指针。

关于c++ - 在 COM 对象上使用 std::map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9037930/

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