js代码调用c++代码的测试
来源:互联网 发布:男鞋推荐 知乎 编辑:程序博客网 时间:2024/05/21 11:19
根据前面的博客对JS调用C++的代码进行了测试,在Node里面加了jsbTest的方法进行Android打包测试。
1.编写coco2dx层的方法
CCNode.h
<span style="font-size:12px;">virtual int jsbTest() const;</span>
CCNode.cpp
int Node::jsbTest(void) const{ return 100;}2.编写js层的方法
jsb_cocos2dx_auto_api.js
cc.Node = {jsbTest : function() { return 0;},}3.进行方法映射
jsb_cocos2dx_auto.hpp
bool js_cocos2dx_Node_jsbTest(JSContext *cx, uint32_t argc, jsval *vp); //声明jsb_cocos2dx_auto.cpp
bool js_cocos2dx_Node_jsbTest(JSContext *cx, uint32_t argc, jsval *vp){ JS::CallArgs args = JS::CallArgsFromVp(argc, vp); JS::RootedObject obj(cx, args.thisv().toObjectOrNull()); js_proxy_t *proxy = jsb_get_js_proxy(obj); cocos2d::Node* cobj = (cocos2d::Node *)(proxy ? proxy->ptr : NULL); JSB_PRECONDITION2( cobj, cx, false, "js_cocos2dx_Node_jsbTest : Invalid Native Object"); if (argc == 0) { uint16_t ret = cobj->jsbTest(); jsval jsret = JSVAL_NULL; jsret = uint32_to_jsval(cx, ret); args.rval().set(jsret); return true; } JS_ReportError(cx, "js_cocos2dx_Node_jsbTest : wrong number of arguments: %d, was expecting %d", argc, 0); return false;}static JSFunctionSpec funcs[] = { JS_FN("jsbTest", js_cocos2dx_Node_jsbTest, 0, JSPROP_PERMANENT | JSPROP_ENUMERATE), //映射}
运行结果
05-21 18:13:18.293: D/cocos2d-x debug info(5009): JS: 100
0 0
- js代码调用c++代码的测试
- c/c++/MFC 调用 js 函数代码
- c/c++/MFC 调用 js 函数代码
- c/c++/MFC 调用 js 函数代码
- js调用flex的代码
- 时间的调用JS代码
- 在<c:foreach 里面调用js代码
- PHP 调用C的代码
- Python调用C的代码
- 用js测试浏览器的js代码
- 调用内核hlist编写的测试代码
- js调用后台代码
- js 调用代码
- asp调用js代码
- js调用服务端代码
- js调用后台代码
- js随机调用代码
- watir 调用js代码
- Swift 标准库文档
- css3笔记
- css3笔记
- C++ 虚函数和纯虚函数的区别
- css3笔记
- js代码调用c++代码的测试
- css3笔记
- JSP中的9个内置对象
- css3笔记
- 练习三1020,总方案数*
- Hql:数据定义
- 翻硬币---贪心
- 《图解TCP/IP》第一章 网络基础知识
- css3笔记