C++/CLI - pin_ptr 帮助

发布于 2024-08-02 00:24:30 字数 176 浏览 7 评论 0原文

我正在编写一个使用一些非托管函数的包装应用程序,并且我使用了大量的 pin_ptr。

我的问题是,大多数时候我在方法调用内使用 pin_ptr,并且 pin_ptr 变量也在方法调用内声明。 当代码转到我们的方法时,我会遇到任何问题吗,因为它不再被固定? 我应该将声明移至类范围吗?

谢谢!

I'm writing a wrapper app that uses some unmanaged functions and I'm using a lot of pin_ptr.

My question is, most of the time I use pin_ptr inside a method call, and the pin_ptr variable is declared also inside the method call. When the code goes our of the method, can I have any problem because it's no longer pinned? Should I move the declaration to a class scope?

thanks!

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

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

发布评论

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

评论(1

橘味果▽酱 2024-08-09 00:24:30

唯一需要将对象固定在托管堆上的情况是当非托管函数或非托管代码直接访问内存中的对象(例如通过指针)时。 如果当你的方法退出时,当前没有任何东西访问该对象的内存,则可以将其取消固定(只要在下次直接访问它之前再次固定它)。

The only time you need to pin an object on the managed heap is when an unmanaged function or unmanaged code directly accesses the object in memory (such as through a pointer). If when your method exits, nothing is currently accessing the object's memory, it can be unpinned (as long as you pin it again before directly accessing it the next time).

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