C++如何获取lua脚本里的CClayer指针,并使用

如题,我试图通过脚本去实现一个CClayer的所有操作,但是获取的指针无法操作,总是报错,不知道怎么获取,这个问题广义上讲是如何从lua脚本获取一个cocos-x接口的指针并在c++里进行使用的问题,不知道怎么调用了,我的代码如下:

----------------------c++代码------------------------------------------------
CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename(“testluacyf.lua”);

lua_State* pL = pEngine->getLuaStack()->getLuaState();
CCLayer* p = NULL;
//我要自己获取,所以不用pEngine->executeScriptFile(“test2.lua”);执行,不知道是否有问题
luaL_dofile(pL, “test2.lua”);
//layerFarm 是lua脚本里的全局指针
lua_getglobal(pL, “layerFarm”);
p = (CCLayer*)lua_topointer(pL, -1);
//我渴望获取到这个指针并加入到CCScene里
CCScene *scene = CCScene::create();
//addChild就报错了,搞不懂,是不是我这样使用不对?
//CCNode::insertChild()的child->_setZOrder(z);过不去了
scene->addChild(p,1, 1);
CCDirector::sharedDirector()->replaceScene(scene);

----------------------lua 脚本---------------------------------------------------------
layerFarm = CCLayer:create()
bg = CCSprite:create(“farm.jpg”)
bg:setPosition(origin.x + visibleSize.width / 2 + 80, origin.y + visibleSize.height / 2)
layerFarm:addChild(bg)

还请高人指点!

lua_topointer(pL, -1)
换成tolua_tousertype(pL,-1,NULL)
试一下

对不起,家里有事,才回公司,改成tolua_tousertype是对的,多谢!