java 调用htm中js函数_Lua中调用C函数(lua5.2.3)
// testlua.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include extern "C"{#include #include #include }//待Lua调用的C注册函数static int add2(lua_State* L){ //检查栈中的参数是否合法,1表示Lua调用时的第一个参数(从左到右),依此类推。 //如果Lua代码在调用时传递的参数不为number,该函数将报错并终止程序的执行。 double op1 = luaL_checknumber(L,1); double op2 = luaL_checknumber(L,2); //将函数的结果压入栈中。如果有多个返回值,可以在这里多次压入栈中。 lua_pushnumber(L,op1 + op2); //返回值用于提示该C函数的返回值数量,即压入栈中的返回值数量。 return 1;}//待Lua调用的C注册函数。static int sub2(lua_State* L){ double op1 = luaL_checknumber(L,1); double op2 = luaL_checknumber(L,2); lua_pushnumber(L,op1 - op2); return 1;}//待Lua调用的C注册函数。static int l_sin (lua_State *L) { double d = lua_tonumber(L, 1); /* get argument */ lua_pushnumber(L, sin(d)); /* push result */ return 1; /* number of results */}int _tmain(int argc, _TCHAR* argv[]){ lua_State *L = luaL_newstate(); luaL_openlibs(L); //将指定的函数注册为Lua的全局函数变量,其中第一个字符串参数为Lua代码 //在调用C函数时使用的全局函数名,第二个参数为实际C函数的指针。 lua_register(L, "add2", add2); lua_register(L, "sub2", sub2); lua_register(L, "l_sin", l_sin); //在注册完所有的C函数之后,即可在Lua的代码块中使用这些已经注册的C函数了。 luaL_dofile(L,"test.lua"); //if (luaL_dostring(L,testfunc)) // printf("Failed to invoke.\n"); //const char *buf = "print('Hello World')"; //luaL_dostring(L,buf); lua_close(L); return 0;}
test.lua
function show()print("helloworld")print(add2(1.0,2.0))print(sub2(20.1,19))print(l_sin(1))end show()
运行结果:
java 调用htm中js函数_Lua中调用C函数(lua5.2.3)相关推荐
- selenium中js定位_Selenium中的定位剂
selenium中js定位 1.什么是Selenium定位器? (1. What is a Selenium Locator?) Selenium Locators are used for iden ...
- 【区块链】以太坊Solidity编程:合约调用与web3.js
以太坊Solidity编程:合约调用与Web3.js 合约部署方法 合约的编译 使用浏览器编译器Remix 使用truffle编译,目前是最常用的编译方式 Solc或者Web3.js编译合约,使用相对 ...
- jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...
本文是推荐使用过jsb.reflection的开发者进行阅读.关于jsb.reflection的说明请参照: 我们在代码编写过程中,通常会需要在js脚本中调用到java代码或者Objective-C的 ...
- java回调函数 final_java中带回调函数的字符串替换,类似js中的replace(rgExp,function)...
在js中, replace函数的功能很强大,其原型是stringObj.replace(rgExp, replaceText), 而replaceText也可以是返回替换文本的函数.这个功能还是比较好 ...
- java中JSB,Cocos Creator 利用JSB进行JS和Android相互调用
一.JS调用Android 在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: Java var ...
- html 两个iframe重叠,解决同一页面中两个iframe互相调用jquery,js函数的方法
这一个月又没更新博客,唉,懒癌又犯了,今天解决了一个问题,关于两个iframe互相调用jquery函数方法 a.html中有两个iframe,如下: b.html中有一个treeview,称为左菜单i ...
- java怎么调用存储函数_java中调用存储过程或存储函数的方法
java中调用存储过程或存储函数的方法 1.调用存储过程:CallableStatement clstmt = null;try {clstmt = conn.prepareCall("{c ...
- 解决同一页面中两个iframe互相调用jquery,js函数
这一个月又没更新博客,唉,懒癌又犯了,今天解决了一个问题,关于两个iframe互相调用jquery函数方法 a.html中有两个iframe,如下: <iframewidth="100 ...
- .php中js写法,js函数常见的写法以及调用方法
写在前面:本文详细的介绍了5中js函数常见的写法以及调用的方法,平时看别人代码的时候总是看到各种不同风格的js函数的写法.不明不白的,找了点资料,做了个总结,需要的小伙伴可以看看,做个参考. 1.常规 ...
最新文章
- 美国国家政策基金会:美国科技秘密武器来自中国和印度
- JavaScript验证表单大全
- mysql python 3.5_python3.5 与 mysql 交互
- 点云赋值 PointCloudT::Ptr 运行时崩溃
- css cursor url用法格式详解
- PID控制器改进笔记之六:改进PID控制器之参数设定
- mysql root命令_MySQL 修改 root 密码命令
- 阿里 20 年,逍遥子宣告「全面迈入数字经济时代」
- sed 以及 awk用法
- 收藏| 一些可供参考的游戏出海技术架构与经验总结
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第3节 综合案例_文件上传_3_综合案例_文件上传案例的服务器端...
- 安卓手机软件开发_你想拿高薪吗?想成为手机软件开发工程师吗?圆你5g梦想!...
- 模糊聚类及matlab实现,模糊聚类分析及matlab程序实现
- 真假内推?直拿offer?别被无良中介给骗了
- 记一次 打包报错:Keystore was tampered with, or password was incorrect
- MFC9.0 Outlook控件的标题显示无法修改
- 在FreeBSD下安装subversion
- destoon7.0火车头免登陆发布接口 destoon模拟人工发布接口 destoon火车头免费采集接口
- 简约时间地图图表合集PPT模板
- 凸度(bulge)是AutoCAD 中独有的概念
热门文章
- storm 机器上日志查询_Storm原理与实践大数据技术栈14
- python 爬虫 标签文本beautifullsoup_【Python爬虫】学习BeautifulSoup
- java lambda表达式_凯哥带你从零学大数据系列之Java篇---第二十二章:Lambda表达式...
- php foreach 符号,关于php:php-foreach循环中变量之前的符号
- 电子设计竞赛(三)-SPWM与PID
- 3.0的USB,我们都用错了。
- arm rtx教程_ARM RTX操作系统—Overview—Product Description
- dict取值_Python基础数据类型「list、tuple、dict」
- 我的世界java手机版怎么调按键_如何在10秒内,让我的世界立即“自爆”?一个隐藏的mc快捷键...
- mysql innodb启动失败_mysql启动失败