当前位置: 首页 > news >正文

研学网站开发需求文档网站验证码体验

研学网站开发需求文档,网站验证码体验,php做网站 价格,品牌vi设计包括什么一、Lua简介 Lua 是一种强大的、高效的、轻量级的、可嵌入的脚本语言。它支持过程#xff08;procedural#xff09;编程、面向对象编程、函数式编程以及数据描述。Lua 是动态类型的#xff0c;运行速度快#xff0c;支持自动内存管理#xff0c;因此被广泛用于配置、脚本…一、Lua简介 Lua 是一种强大的、高效的、轻量级的、可嵌入的脚本语言。它支持过程procedural编程、面向对象编程、函数式编程以及数据描述。Lua 是动态类型的运行速度快支持自动内存管理因此被广泛用于配置、脚本编写等场景。 二、Lua的优势 Lua脚本可以很容易的被C/C 代码调用也可以反过来调用C/C的函数这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本也可以作为普通的配置文件代替XML、ini等文件格式并且更容易理解和维护。 Lua由标准C编写而成代码简洁优美几乎在所有操作系统和平台上都可以编译、运行。 一个完整的Lua解释器不过200k在所有脚本引擎中Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。 三、Qt Lua 环境搭建 Lua是用标准C编写的所以几乎常见的编程环境它都能编译Lua。下载源码包后直接编译即可。 1、 下载Lua 下载地址https://www.lua.org/ftp 2、 使用QtCreator编译lua.a库 打开QtCreator新建项目 Library C库在后续弹出的窗口中选择 Statically Linked Library根据向导完成项目的创建然后删掉由向导添加的头文件和源文件。将除了lua.c和luac.c以外的文件加入到你的开发环境中进行编译即可。文末有对应的pro文件可以参考一下。 pslua.c 和 luac.c 中都有main函数需要分别编译这两个文件。其中lua.c编译出来是解析器luac.c编译出来是编译器。 四、在Qt中调用Lua 1、 新建一个math.lua文件内容如下 function fn_add(x,y)return x y endfunction fn_subtract(x,y)return x - y endfunction fn_multiply(x,y)return x * y endfunction fn_divide(x,y)return x*1.0 / y end2、Qt调用Lua的测试代码 新建Qt控制台程序在该控制台程序的pro文件配置一下lua库的头文件以及库文件路径 CONFIG(debug, debug|release){DESTDIR $$PWD/../bin/debugOBJECTS_DIR $$PWD/../obj/debugDIR_NAME debug } CONFIG(release, debug|release){DESTDIR $$PWD/../bin/releaseOBJECTS_DIR $$PWD/../obj/releaseDIR_NAME release } INCLUDEPATH $$PWD/./3rdparty/libLua/include LIBS -L$$PWD/./3rdparty/libLua/lib/$${DIR_NAME}/ -lliblua控制台main.cpp的代码如下 #include QCoreApplication #include stdio.h extern C{ #include lua.h #include lauxlib.h #include lualib.h }lua_State *L; double luaMath(std::string fname, int x, int y) {/* 要调用一个函数请遵循以下协议* 首先要调用的函数应该被压入栈接着把需要传递给这个函数的参数按正序压栈* 这是指第一个参数首先压栈。最后调用一下 lua_call当函数调用完毕后* 所有的参数以及函数本身都会出栈而函数的返回值这时则被压栈。*/double result;/*获取函数名*/lua_getglobal(L, fname.c_str());/*压入第一个参数*/lua_pushnumber(L, x);/*压入第二个参数*/lua_pushnumber(L, y);/*使用2个参数调用函数返回1个结果。*/lua_call(L, 2, 1);/*获取结果*/result (double)lua_tonumber(L,-1);/*清理返回结果*/lua_pop(L, 1);return result; }int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);L luaL_newstate();//新建lua解释器luaL_openlibs(L);//载入lua基础库#if 1//执行lua脚本:luaL_dofile(L, lua/math.lua);//填写实际的math.lua文件的相对路径/*call the add function*/int sum luaMath(fn_add, 10, 15);printf(sum %d\r\n, sum);int subtract luaMath(fn_subtract, 10, 15);printf(subtract %d\r\n, subtract);int multiply luaMath(fn_multiply, 10, 15);printf(multiply %d\r\n, multiply);auto divide luaMath(fn_divide, 10, 15);printf(divide %.3f\r\n, divide); #endif/*cleanup Lua*/lua_close(L);system(pause);return a.exec(); }3、输出结果 sum 25 subtract -5 multiply 150 divide 0.667五、附上lua库的pro文件内容 QT - guiTEMPLATE lib CONFIG staticlibCONFIG c11#去掉生成空的debug和release目录 CONFIG - debug_and_release# 编译时临时文件路径 RCC_DIR $$PWD/../temp/rcc_tmp MOC_DIR $$PWD/../temp/moc_tmp UI_DIR $$PWD/../temp/ui_tmpCONFIG(debug, debug|release){DESTDIR $$PWD/../lib/debugOBJECTS_DIR $$PWD/../obj/debugDIR_NAME debug } CONFIG(release, debug|release){DESTDIR $$PWD/../lib/releaseOBJECTS_DIR $$PWD/../obj/releaseDIR_NAME release }# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES \lapi.c \lauxlib.c \lbaselib.c \lcode.c \lcorolib.c \lctype.c \ldblib.c \ldebug.c \ldo.c \ldump.c \lfunc.c \lgc.c \linit.c \liolib.c \llex.c \lmathlib.c \lmem.c \loadlib.c \lobject.c \lopcodes.c \loslib.c \lparser.c \lstate.c \lstring.c \lstrlib.c \ltable.c \ltablib.c \ltm.c \lundump.c \lutf8lib.c \lvm.c \lzio.cHEADERS \lapi.h \lauxlib.h \lcode.h \lctype.h \ldebug.h \ldo.h \lfunc.h \lgc.h \ljumptab.h \llex.h \llimits.h \lmem.h \lobject.h \lopcodes.h \lopnames.h \lparser.h \lprefix.h \lstate.h \lstring.h \ltable.h \ltm.h \lua.h \lua.hpp \luaconf.h \lualib.h \lundump.h \lvm.h \lzio.h# Default rules for deployment. unix {target.path $$[QT_INSTALL_PLUGINS]/generic } !isEmpty(target.path): INSTALLS target#拷贝头文件到include目录下 win32 {SrcIncludeDir $${PWD} #定义的宏变量,在非首位置使用时需要带{}SrcIncludeDir $$replace(SrcIncludeDir, /, \\)DstIncludeDir $$PWD/../include/DstIncludeDir $$replace(DstIncludeDir, /, \\)#多条命令语句之间可以用隔开,自动连续执行QMAKE_POST_LINK echo ---------prepare to copy *.h--------- echo.QMAKE_POST_LINK cd $$SrcIncludeDir xcopy /s/y/i $$SrcIncludeDir\lauxlib.h $$DstIncludeDirQMAKE_POST_LINK xcopy /s/y/i $$SrcIncludeDir\lua.h $$DstIncludeDirQMAKE_POST_LINK xcopy /s/y/i $$SrcIncludeDir\luaconf.h $$DstIncludeDirQMAKE_POST_LINK xcopy /s/y/i $$SrcIncludeDir\lualib.h $$DstIncludeDir#打印测试#message(--SrcIncludeDir $$SrcIncludeDir)#message(--DstIncludeDir $$DstIncludeDir) }
http://www.hkea.cn/news/14462519/

相关文章:

  • 织梦网站管理安装申请制作网站
  • 钛钢饰品网站建设华为企业邮箱
  • 河南网站建设公司哪个好呀排名sem优化软件
  • 网站的颜色搭配个人网站酷站赏析
  • 百度上面做企业网站怎么做安徽网站建设大全
  • 甘肃张掖网站建设天津做个网站需要多少钱
  • 建构网站西安网页设计及网站建设在线作业
  • nas 做网站源码开发网站建设
  • 自己做的网站链接到微信支付界面自己做网站页面
  • 象刀设计网站浙江省网站集约化建设通知
  • win7 iis网站设置网站建设实训内容
  • 网站建设花费梦幻西游网页版微信区和app互通吗
  • 网站设置qq临时会话吉安网站建设jxthw
  • 湖州网站集约化平台哪些网站做财金的好
  • node.js做的网站比特币支付网站建设
  • 网站主页面设计哪个好怎么制作官网
  • 厚街做网站的公司虚拟币交易网站建设
  • 中国建设银行注册网站用户名怎么填制作app开发制作
  • 青岛当地的做公司网站的wordpress 路径文件大小
  • 河南网站建设电话松岗网站建设
  • 在线浏览器入口搜狗seo快速排名公司
  • 怎么做好网站搜索引擎优化网站案例比较多的公司
  • 做网站表格网业协同什么意思
  • 网站备案到期网络规划设计师通过率是多少
  • 个人备案可以做盈利网站吗建设网站最快多长时间
  • 苏州市建设交易中心网站首页电影下载网站模板
  • 怎么查网站后台地址网站更改了资料 百度什么时侯来抓取
  • 学做网站需要多长时间国际购物网站排名
  • 自己建一个网站做电子商务北京黄页
  • 在哪个网站可以搜索做凉菜视频模板网站多钱