【绑定自定义类至Lua】(四)使用绑定C++至Lua的自定义类
2015-11-10 01:21
316 查看
续【绑定自定义类至Lua】(三)动手绑定自定义类至Lua动手绑定自定义类至Lua 之后,我们已经完成了自定义类至Lua的绑定。在接下来的环节,我们将使用它。
首先,我们需要确定,通过Python脚本我们生成了哪些绑定文件?我们罗列一个表单。
检查这些文件是否在你的项目当中相对的路径。(F:\Cocos2dx-Lua\Garfield 这是我的示例项目所在路径)。
一切无误的话,我们使用VS2013将"Garfield.sln"工程文件打开。我们将在"libluacocos2d\auto"中引入"lua_pet_auto.hpp"、"lua_pet_auto.cpp"。这两个文件声明及定义"register_all_custom_pet()"全局函数,用于完成对C++绑定类的注册,完成类中成员属性及成员函数向Lua的"注入",实现C++类结构至Lua的"解析"。"register_all_custom_pet()"函数我们一会将用到。
检查第三章节中我们创建的"Pet"类文件是否已经正确引入到VS2013工程中。
完成这些文件的引入之后,我们将在引擎入口协议类"AppDelegate"调用"register_all_custom_pet()"函数来完成绑定类在该项目的注册。
1. 引入" #include "lua_pet_auto.hpp" 头文件; ( " register_all_custom_pet() " 定义于该文件中)
2. 调用 "register_all_custom_pet()" 。
接下来,我们可以在Quick-Cocos2d-x项目中使用该"Pet"了。我将在Cocos Code IDE中编写我的脚本程序,该脚本代码中使用了由C++定义的类Pet。如下:
回到VS2013工程,运行项目。
如果你碰到诸如“打开vs工程导入lua_pet_auto.cpp 和lua_pet_auto.hpp ,lua_pet_auto.cpp中报错说找不到pet.h 文件 编译报错说..\auto\lua_pet_auto.cpp(2): fatal error C1083: 无法打开包括文件:“Pet.h”: No such file or directory”这样的错误,请参照下面的截图,在VS中填加Class的包含路径。
写在最后,为了希望可以尽量帮助看到该篇博文的读者,笔者尽力将每个环节都进行了详细的截图和说明,难免会略有赘述。同时小心翼翼的验证每个环节,但难免有纰漏之处,如果你在阅读的过程中发现问题,可与我联系,非常乐意与你交流。
首先,我们需要确定,通过Python脚本我们生成了哪些绑定文件?我们罗列一个表单。
// Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto 1. lua_pet_auto.hpp // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto 2. lua_pet_auto.cpp // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto\api 3. lua_pet_auto_api.lua // Path : F:\Cocos2dx-Lua\Garfield\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto\api 4. Pet.lua
检查这些文件是否在你的项目当中相对的路径。(F:\Cocos2dx-Lua\Garfield 这是我的示例项目所在路径)。
一切无误的话,我们使用VS2013将"Garfield.sln"工程文件打开。我们将在"libluacocos2d\auto"中引入"lua_pet_auto.hpp"、"lua_pet_auto.cpp"。这两个文件声明及定义"register_all_custom_pet()"全局函数,用于完成对C++绑定类的注册,完成类中成员属性及成员函数向Lua的"注入",实现C++类结构至Lua的"解析"。"register_all_custom_pet()"函数我们一会将用到。
检查第三章节中我们创建的"Pet"类文件是否已经正确引入到VS2013工程中。
完成这些文件的引入之后,我们将在引擎入口协议类"AppDelegate"调用"register_all_custom_pet()"函数来完成绑定类在该项目的注册。
1. 引入" #include "lua_pet_auto.hpp" 头文件; ( " register_all_custom_pet() " 定义于该文件中)
2. 调用 "register_all_custom_pet()" 。
接下来,我们可以在Quick-Cocos2d-x项目中使用该"Pet"了。我将在Cocos Code IDE中编写我的脚本程序,该脚本代码中使用了由C++定义的类Pet。如下:
回到VS2013工程,运行项目。
如果你碰到诸如“打开vs工程导入lua_pet_auto.cpp 和lua_pet_auto.hpp ,lua_pet_auto.cpp中报错说找不到pet.h 文件 编译报错说..\auto\lua_pet_auto.cpp(2): fatal error C1083: 无法打开包括文件:“Pet.h”: No such file or directory”这样的错误,请参照下面的截图,在VS中填加Class的包含路径。
写在最后,为了希望可以尽量帮助看到该篇博文的读者,笔者尽力将每个环节都进行了详细的截图和说明,难免会略有赘述。同时小心翼翼的验证每个环节,但难免有纰漏之处,如果你在阅读的过程中发现问题,可与我联系,非常乐意与你交流。
相关文章推荐
- 【绑定自定义类至Lua】(三)动手绑定自定义类至Lua
- 【绑定自定义类至Lua】(二)新建项目中配制环境
- 【绑定自定义类至Lua】(一)环境搭建
- Lua(一)——类型与值
- 生产环境中 Ngx_lua 使用技巧和应用的范例
- lua table访问的元方法
- lua 算术类和关系类的元方法
- lua 模式匹配
- 1.lua
- LUA语言注意点归集
- [Lua]Lua语言基础汇总 -- 函数
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
- Lua_Lua中的闭包小结
- Lua_Lua中的数学库总结
- lua和c的交互
- Luajit 2.0.4 绑定 protoc-gen-lua (Windows 平台)
- Eclipse中安装Lua Eclipse插件
- lua调用syslog; 使用C注册lua方法
- protoc-gen-lua 编译、安装、使用教程
- C调用Lua -- 简单的解释器程序实现