我的开发环境是 js 3.6的。想将一个c++类绑定到js。
jsb_kenko_auto是需要绑定的类。
我也在 appDelegate 中 写了。
sc
->addRegisterCallback(register_jsb_kenko_all);
下面是cpp 文件
#include
“jsb_kenko_auto.h”
#include
“cocos2d_specifics.hpp”
std::string os_info() {
CCLOG(
“it’s c++ os_info here”);
return
“os_info”;
}
bool jsb_os_info(JSContext *cx, uint32_t argc, JS::Value *vp) {
jsval ret = std_string_to_jsval(cx, os_info());
JS_SET_RVAL(cx, vp, ret);
return
true;
}
void register_jsb_kenko_all(JSContext *cx, JSObject *obj) {
JS_DefineFunction(cx, obj,
“osInfo”, jsb_os_info, 0, 0); *//生成名为osInfo的js全局函数
**
*}
.h文件
#ifndef jsb_jsb_kenko_auto_h
#define jsb_jsb_kenko_auto_h
#include
“cocos2d.h”
std::string os_info();
bool jsb_os_info(JSContext *cx, uint32_t argc, JS::Value *vp);
bool jsb_callback(JSContext *cx, uint32_t argc, JS::Value *vp);
void register_jsb_kenko_all(JSContext* cx, JSObject* obj);
#endif
问什么我在app.js 调用 c++类定义的os_info 方法,却提示未定义呢。是我少做了什么操作吗?