返回迭代器是 DLL 安全的吗?

发布于 2024-10-11 12:09:31 字数 76 浏览 0 评论 0原文

我指的是,如果该类来自具有自己的堆的 DLL,并且它有一个私有向量,那么拥有将迭代器返回到该向量的公共函数是否安全?

谢谢

I'm referring to if the class comes from a DLL with its own heap, and it has a private vector, is it safe to have public functions which return iterators to that vector?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

丶视觉 2024-10-18 12:09:31

是的。需要注意的是:使用 DLL 时,请使用 C++ 运行时 DLL,而不是静态链接。

在两种情况下使用静态链接:开发独立的 EXE(其中运行时 DLL 将是第一个且唯一的 DLL)时以及开发不带 C++ 接口(即 C 接口或 COM 接口)的可重用 DLL 时。这两种情况都不适用于此。您必须有一个 C++ 接口才能返回迭代器。

通过 C++ 运行时的动态链接,只有一个运行时。

Yes. One caveat: when using DLLs, use the C++ runtime DLL, not static linking.

You use static linking in 2 cases: when developing a standalone EXE (where the runtime DLL would be the first and only DLL) and when developing a reusable DLL without a C++ interface (i.e. either a C interface or a COM interface). Neither of these cases apply here. You must have a C++ interface to return iterators.

With dynamic linking of the C++ runtime, there's only one runtime.

一袭水袖舞倾城 2024-10-18 12:09:31

它不是。事实上,它有自己的堆,这会阻止它正常工作。

It is not. The fact that it has its own heap is what will prevent it from working correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文