2012-02-04 78 views
0

我發現這個博客張貼有關如何C++類綁定到LUA:http://loadcode.blogspot.com/2007/02/wrapping-c-classes-in-lua.html當我調用綁定的C++類函數兩次時發生lua錯誤?

但它不是直的工作開箱。 我調整了我自己的函數,而不是我使用NPC類的Sprite類。 我改變了功能setSpeed我自己叫NpcSetPosition(lua_State *L)將被稱爲每次我打電話在Lua如下:

local npc = Npc:New() 
npc:SetPosition(5,5) 

(全國人大:SETPOSITION功能)

現在,有趣的是我如何調用checkSpriteNpcSetPosition之內,如果我這樣做了一次,lua腳本將運行得很好。但是,如果我做兩次(我稱之爲npc:SetPosition(5,5)兩次)我收到以下錯誤信息:

Lua Compile Error: script.lua:10: bad argument #1-1 to: 'SetPosition' (table expected, got userdata) 

這意味着我不能爲人大的位置兩次這是廢話。 你知道發生了什麼問題嗎? 它與lua堆棧有關嗎? 謝謝。

+0

「我已經調整了我自己的功能」你能告訴我們調整後的版本嗎? – 2012-02-04 17:09:25

+0

它在這裏:http://pastebin.com/3xMpCPG9 – user1188404 2012-02-04 17:19:54

+2

我的意思是讓你把它放在你的問題。 – 2012-02-04 17:40:14

回答

0

聽起來就像你錯誤地管理你的堆棧。

你在做lua_settop(0);或在你的SetPosition函數中類似? 如果你正確地管理你的堆棧,那麼這個錯誤將會消失。

相關問題