首页 > 其他分享 >Duktape 集成

Duktape 集成

时间:2024-08-25 22:05:05浏览次数:5  
标签:集成 duk int ctx adder Duktape test

(从我另一博客 [Atypiape] 搬家过来)

译文作者:Atypiape
原文来自:Duktape
写作日期:2016-08-13

1 参与构建


(可以通过查看入门指南,来了解更详细的介绍)

Duktape 的 C 语言源文件和头文件可用于任何构建系统,只需将它们加入到你的项目中参与构建即可。可发行版本中包含一个 Makefile 示例以供参考。以下是个最简单的例子:

$ gcc -std=c99 -o test test.c duktape.c -lm
$ ./test
Hello world!

2 初始化一个环境(context)


在你程序的任何地方初始化并使用 Duktape:

/* test.c */
#include "duktape.h"

int main(int argc, char *argv[]) {
  duk_context *ctx = duk_create_heap_default();
  duk_eval_string(ctx, "print('Hello world!');");
  duk_destroy_heap(ctx);
  return 0;
}

3 添加 C 函数绑定


想由 ECMAScript 代码来调用一个 C 函数,首先需要定义你的 C 函数:

duk_ret_t adder(duk_context *ctx) {
  int i;
  int n = duk_get_top(ctx);  /* #args */
  double res = 0.0;
  for (i = 0; i < n; i++) {
    res += duk_to_number(ctx, i);
  }
  duk_push_number(ctx, res);
  return 1;  /* one return value */
}

接下来,注册你这个函数,比例将它注册到全局对象中:

duk_push_c_function(ctx, adder, DUK_VARARGS);
duk_put_global_string(ctx, "adder");

然后,你就可以在 ECMAScript 代码中调用你的函数了:

duk_eval_string_noresult(ctx, "print('2+3=' + adder(2, 3));");

标签:集成,duk,int,ctx,adder,Duktape,test
From: https://www.cnblogs.com/wxxweb/p/18379610

相关文章

  • Duktape 介绍
    (从我另一博客[Atypiape]搬家过来)译文作者:Atypiape原文来自:Duktape写作日期:2016-08-12Duktape是一个轻量级的嵌入式JavaScript引擎,专注于可移植性和低占用率。Duktape可以被轻松地集成进一个C/C++项目中:只需要将duktape.c、duktape.h和duk_config.h三个文件加入你......
  • Spring Boot 与 Spring Security 的集成及 OAuth2 实现
      我的主页:2的n次方_   在现代Web应用开发中,安全性是至关重要的。无论是保护用户的敏感数据,还是确保API只允许经过授权的请求访问,开发者都需要一个强大且灵活的安全框架来实现这些需求。SpringSecurity作为Spring框架的安全模块,能够为应用提供全面的安全保......
  • Odoo软件二次开发:Odoo自动化测试与持续集成
    Odoo软件二次开发:Odoo自动化测试与持续集成Odoo自动化测试基础自动化测试的重要性在软件开发过程中,自动化测试扮演着至关重要的角色。它不仅提高了测试的效率和准确性,还减少了人为错误,确保了软件质量。对于Odoo这样的复杂ERP系统,自动化测试更是必不可少,因为它可以帮助开......
  • Epicor ERP软件二次开发:EpicorERP二次开发之工作流集成与自动化
    EpicorERP软件二次开发:EpicorERP二次开发之工作流集成与自动化EpicorERP软件二次开发:工作流集成与自动化1.1EpicorERP软件概述EpicorERP是一款全面的企业资源规划软件,旨在帮助中大型企业优化其业务流程,提高运营效率。它集成了财务、供应链、制造、销售、人力资源等......
  • Spring Boot集成Spring Cloud Contract进行契约测试
    SpringBoot集成SpringCloudContract进行契约测试大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!契约测试的重要性在微服务架构中,服务之间通过API进行通信。随着服务的独立开发和部署,确保各个服务之间能够正确交互变得尤为重要。契约测试是一种专......
  • Spring Boot集成Spring Cloud Release进行版本发布管理
    SpringBoot集成SpringCloudRelease进行版本发布管理大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!版本发布管理的重要性在软件开发过程中,版本发布管理是一个关键环节。它不仅涉及到代码的编译、打包、测试和部署,还包括版本控制、自动化部署和回......
  • Spring Boot集成Spring Cloud Commons进行公共组件管理
    SpringBoot集成SpringCloudCommons进行公共组件管理大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!SpringCloudCommons为SpringCloud应用提供了一些通用的抽象和实现,使得在微服务架构中管理公共组件变得更加简单和统一。本文将介绍如何使用Spr......
  • Spring Boot集成Spring Cloud Data Flow进行数据流管理
    SpringBoot集成SpringCloudDataFlow进行数据流管理大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!概述SpringCloudDataFlow是一个用于创建、部署和管理数据微服务的云原生工具。它提供了一个统一的界面来编排和管理数据流,允许开发者快速构......
  • ETL数据集成丨为什么没有做好ETL的BI工具最终都会失败?
    随着数字化转型,企业越来越重视数据的价值和利用。商业智能(BusinessIntelligence,BI)作为一种数据分析和决策支持的重要工具,被广泛应用于各行各业。然而,对于BI项目的成功实施,ETL(Extract,Transform,Load)过程的重要性不容忽视。ETL作为BI项目的基础,如果缺乏或不完善,往往会导致BI项目......
  • Spring Boot集成Spring Cloud Scheduler进行任务调度
    SpringBoot集成SpringCloudScheduler进行任务调度大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!任务调度是后端服务中常见的需求,用于执行定时任务或周期性的工作。SpringCloudScheduler提供了对SpringBoot应用的任务调度支持,允许开发者以声明......