问题标签 [duktape]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 使用 C++ Builder 和 Clang 编译 Duktape 时找不到 inttypes.h 文件
我使用C++ Builder Seattle创建了一个简单的 Duktape 示例,并遵循Duktape中“初始化上下文”中的代码。使用经典模式时编译良好。如果我通过取消选中 Project->Options->C++ Compiler->Use 'classic' Borland compiler 切换到 clang,我会收到以下错误。
如果我注释掉包含我会得到以下错误:
javascript - duktape 是否应该能够处理这种嵌套的赋值结构?
我正在使用 TypeScript 生成在 duktape 解释器中运行的枚举代码:
duktape 会解决NodeType["text"] => 1
,但不会NodeType[1] => "text"
。我不确定这是 duktape 的错误还是它不支持的错误。
duktape - 移植duktape,js编译内置initjs时出现duk_create_heap错误
这个问题对于这个论坛来说可能太详细了,但我找不到 duktape 的邮件列表。也许这个问题对于试图让 duktape 在更晦涩的硬件上运行的其他人有用。
我正在尝试使用 OLD gcc 编译器(2.95.3)让 duktape 在旧的 ColdFire CPU 上工作。该板的资源(闪存/RAM)有限,但我似乎两者都足够了。我必须使用旧的编译器。
我相信 duk_config.h 正在计算有关字节序等的正确选项。我正在使用一些 duktape 选项来减少代码和数据大小。我已经在 64 位和 32 位 Ubuntu 上成功使用了相同的配置,并且运行良好。
在 duk_hthread_create_builtin_objects() 中形成和设置的“属性字符串”是:“bb u pnRHSBOL p2 a8 generic linux gcc”,这似乎是正确的(不确定“通用”标签对体系结构的影响)。
调用 duk_create_heap() 时失败。我已将问题隔离为我认为与 duk_initjs 相关的 JS 编译错误。如果我取消定义 DUK_USE_BUILTIN_INITJS,初始化工作。该错误是语法错误(尚不确定在哪里)。通过在我的可执行文件上运行“字符串”,我可以看到 javascript 程序源字符串在那里。作为一个附带问题,当这个错误发生时,longjmp 不起作用(setjmp 从未调用过?)所以我的致命处理程序被调用,但我现在不在乎。
我认为这可能是我的小型 C 堆栈(看起来 js 编译器使用递归),但使堆栈更大并没有帮助。
我开始深入研究 JS 编译器,但这一定是架构或我的环境的问题。任何建议表示赞赏!
编辑:我刚刚注意到一个类似问题的帖子,并且有人要求重复“-DDUK_OPT_DEBUG -DDUK_OPT_DPRINT -DDUK_OPT_ASSERTIONS -DDUK_OPT_SELF_TESTS”我将尝试使用这些选项(如果可能,我非常接近搬迁限制在我的可执行文件上)。
c++ - 如何在 duktape 中解析递归 json 数据?
我正在尝试使用 duktape 解析递归数据结构,并且似乎在某处出现错误。由于我是 duktape 图书馆的新手,而且在这种情况下的例子还不清楚,我想我可以问问人群。
数据:
使用用于解析它的函数:
使用这个版本,我得到输出:
正确的输出当然应该是:
所以问题仍然存在:我在解析数据时的错误在哪里?
c++ - 使用 duktape 公开 C++ 类
我目前正在构建一个简单的游戏引擎/基本库。现在,我正在研究脚本支持。因为我一直更喜欢 JavaScript,比如 Lua 或 Python,所以我考虑使用它作为我的主要脚本语言。Google V8 首先让我印象深刻,它具有良好的性能和相对简单的暴露类的方法——大量使用模板。但是,我似乎无法在 Windows 上使用 MinGW 编译 V8 - 它只是不想。然后我看了看 ChaiScript,它也很有趣——尤其是因为它比 V8 更先进了嵌入。然而,这不是我的第一选择。
现在,我的问题如下。如何实现将复杂的 C++ 类暴露给 duktape?我知道这个问题,但它只使用一个非常简单的类 foobar 类。说我有这门课:
我将如何公开它,以便duktape可以使用它?此外,我可以通过使用模板(尤其是 ChaiScript(尤其是)和 Google V8 如此重用吗?)以某种方式自动化(或更容易)这个过程吗?
c++ - 构造可变参数模板参数列表
假设我有以下情况:
Whereduk_function
返回签名的函数duk_ret_t function(duk_context* ctx) { ... }
。现在,我知道如何duk_function_proxy
使用可变参数模板等调用函数对象。但是对我来说有一个问题:我使用的 javascript 解释器要求,对于我想要公开的每个 c 函数,我需要从堆栈中查询参数,如duk_function_proxy
. 但是,在这种情况下,我不知道如何调用函数对象 - 我只能将查询的参数存储在某种容器中,因此我无法调用具有给定签名的函数对象。有没有办法将我查询的参数存储在某种容器中,然后解包并将其作为参数传递给函数对象?我根据可变参数模板列表查询所需的参数,如原型所示。
简而言之:
我想遍历 T_Params,使用duk_require_*
(在某种容器中)获取和存储相应的变量,然后使用这些值调用作为模板参数传递的函数对象。
javascript - 在 Ductape 中必须保存一个 Js 回调函数,将参数传递给 C 函数
C++ 调用 JS 函数 JsFunc(),将 C 函数 MyCFunc() 作为参数传递。JsFunc() 调用 MyCFunc() 并将 JS 回调函数作为参数传递。
如何在 MyCFunc() 中保存 JS 回调函数参数,以便以后可以从 C++ 的其他地方调用它?
主文件
测试.js
javascript - 在 duktape 中使用 json 对象
大家。我刚刚在我的 c++ 代码中集成了 duktape,以便能够使用 javascript。
但我现在无法解决的问题:如何在 javascript 中使用 json 对象。
假设我有一些像
和 json 对象:
所以现在我需要在我的 cpp 代码中使用这个 json 的参数调用函数 hi。
我得到的输出告诉我,那个对象不正确
想就应该由谁来让它工作提出任何建议!谢谢你的时间 :)
javascript - 获取 json 属性 duktape
每个人都对 duktape 框架感兴趣。如何将 json 属性与 cpp 代码集成?
假设我们得到以下 json:
如果想获得“name”键的对应值,他怎么能做到呢?
javascript - 在 Duktape 中,如何将 JS 源文件内容转换为字节码
我想知道下面描述的步骤是如何完成的:
- 如何将 JS 源文件(带有两个函数 funcA() 和 funcB() 的 test.js)转换为字节码?
- 如何将生成的字节码加载到 duktape 中并调用其中一个函数,比如 funcA()?
谢谢。
测试.js:
主文件