簡體   English   中英

gc-ed lua對象上的析構函數

[英]destructors on gc-ed lua objects

我知道Lua是gc-ed。 我知道Lua可以通過userdata處理c對象。

這是我的問題:無論如何要注冊一個函數,以便當一個C userdata對象被lua gc編輯時調用它? [基本上是析構函數]。

謝謝!

是的,有一元方法稱為__gc專門用於此目的。 有關更多詳細信息,請參見第29章 - 管理 Lua中編程 資源 (PIL)

以下代碼段創建了一個metatable並注冊了__gc元方法回調:

  luaL_newmetatable(L, "SomeClass");

  lua_pushcfunction(L, some_class_gc_callback);
  lua_setfield(L, -2, "__gc");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM