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

当今做网站的流行wordpress 摘要不显示

当今做网站的流行,wordpress 摘要不显示,阿里云怎么建设网站,怎么制作网页内容系列文章目录 lua调用C/C的函数,十分钟快速掌握 C调用lua脚本,包括全局函数绑定、类绑定,十分钟快速掌握 系列文章目录摘要环境使用步骤码代码自定义函数多返回值变长参数 自定义类test_sol2.lua内容 程序输出 摘要 在这个快节奏的技术博客…

系列文章目录

lua调用C/C++的函数,十分钟快速掌握


C++调用lua脚本,包括全局函数绑定、类绑定,十分钟快速掌握

  • 系列文章目录
  • 摘要
  • 环境
  • 使用步骤
  • 码代码
    • 自定义函数
      • 多返回值
      • 变长参数
    • 自定义类
    • test_sol2.lua内容
  • 程序输出


摘要

在这个快节奏的技术博客中,我们将借助sol2库,以十分钟的时间快速掌握如何在C++中调用Lua脚本。sol2是一个轻量级的Lua绑定库,它简化了C++与Lua之间的交互,使得全局函数和类的绑定变得异常简便。我们将创建几个”复杂的“函数,变长参数、多返回值,和一个具有几个成员函数的简单类,通过sol2的简洁语法,只需几行代码,我们就能将C++函数绑定到Lua环境中,实现跨语言调用。

为了快速输出我们要讲的内容,我不仅提供了实际的示例代码,还将解释每一步的操作,确保能够迅速理解并运用这一技术。通过这十分钟的快速掌握,希望将能够在项目中充分发挥C++与Lua的优势,实现更灵活、高效的代码编写。无论是全局函数的调用还是类的绑定,sol2为C++与Lua的融合提供了一种极具便利性和效率的解决方案。

环境

工具\组件版本说明
Windows10
visual studio2022
lua5.4
sol23.2.3
C++17sol2需要

使用步骤

lua头文件和静态链接库或者动态库,从官方网站下载预编译好的即可,当然如果你有自定义需求也可自行修改编译。

引入sol2头文件,从github上下载。

# 就是这三个文件,要按此层次结构放好。
│  sol.hpp
│
└─solconfig.hppforward.hpp

visual studio新建个项目,C++语言标准设置为C++17。

加入头文件和库文件到项目中。

接下来就是码代码了。


码代码

自定义函数

多返回值

通过使用sol2我们不需要自己再写包装方法,这一下就省了不少代码。

std::tuple<int,const char*, double> multipleResultFunc(int a, const char* b, double c)
{//return std::tuple<int, char*, double>(a, b, c);return std::make_tuple(a, b, c);
}

变长参数

int variaArgs(sol::variadic_args va)
{int r = 0;for (auto v : va){r += static_cast<int>( v);}return r;
}

自定义类

	class my_class{private:std::string m_str;public:int b = 24;int f() const{return 24;}void g(){++b;}void setTitle(const char* str){this->m_str = str;}void print(){std::cout << this->m_str << " , " << this->b << std::endl;std::wcout << this->rowname << L" , " << typeid( this->columns).name() << std::endl;}}
#define SOL_CHECK_ARGUMENTS 1
#include "sol.hpp"sol::state lua;lua.open_libraries(sol::lib::base);// "bark" namespacing in Lua// namespacing is just putting things in a tablesol::table bark = lua.create_named_table("bark");bark.new_usertype<my_class>("my_class","f", &my_class::f,"g", &my_class::g,"setTitle", &my_class::setTitle,"print", &my_class::print//,//"putUnsetValue", &my_class::putUnsetValue//,//"setSome", &my_class::setSome); // the usuallua.set_function("multipleResultFunc", multipleResultFunc);lua.set_function("variaArgs", variaArgs);// load and execute from filelua.script_file("test_sol2.lua");

test_sol2.lua内容

obj = bark.my_class.new()
obj:g()
local result =obj:f()
obj:setTitle("I am Tom , and you ?")
print(">>>>>>")
obj:print()bark.print_my_class(obj)
print(result)print(bark.add_two_number(1,2))mr, mr2, mr3 = multipleResultFunc(11, "Jerry", 123.45)
print(mr, mr2, mr3)
print(mr)print("call variable args function", 1, 2, 3, 4)
local r= variaArgs(1,2,3,4)
print(variaArgs, r)

程序输出

=== namespacing ===
I am Tom , and you ? , 25, class std::vector<unsigned long,class std::allocator<unsigned long> >
my_class { b: 25 }
24
3
11      Jerry   123.45
11
call variable args function     1       2       3       4
function: 0102B030      10
C source output Your name is Michael, and 2323 years old.
http://www.yayakq.cn/news/54235/

相关文章:

  • 免费空间说说赞领取网站淘宝上买的建设网站能退款吗
  • 云南专业做网站多少钱怎么营销推广
  • 网站建设业务拓展思路网页设计实训报告总结1500字
  • 移动网站建设优势唯品会网站建设的目的
  • 网站托管哪家公司好wordpress开发入门视频教程
  • 东莞做创意网站建设一个网站需要哪些步骤
  • 中小型网站建设怎么样ps怎么制作网页
  • 北京高级网站建设软文发稿平台
  • 网站建设一般需要多少钱紫色风格网站
  • 国内做网上旅游业务的网站wordpress调整时间
  • 海西州电子商务网站建设手机应用商店app下载官方版
  • 海口有哪几家是做网站的网站开发步骤
  • 乐搜做网站网站开发有哪些公司
  • 商城网站建设流程图百度网盘官方
  • 柳州市建设投资开发公司网站wordpress4.7.1漏洞
  • 常州做网站推广黄骅港旅游景点
  • 网站构建是什么网站开发工程师需要什么证书
  • 网站培训费用一二三类医疗器械目录
  • 网站建设与推广话术什么是网络营销基本思想
  • 广州手机网站定制如何精准客户怎么营销
  • 三亚市住房和城乡建设局网站网站建设的实践报告
  • 竞价网站做推广长沙有家具网站建设的吗
  • 设计一个完整的静态网站WordPress搭建流媒体网站
  • 新加坡的网站域名网站编辑年终总结
  • 动漫网站设计源代码小程序代做
  • 宝塔面板怎么建设网站口碑营销是什么意思
  • 南京网站开发南京乐识专注新浪云主机上安装wordpress主题
  • 现在1做啥网站流量大企业网站建设因素分析
  • 西安知名的集团门户网站建设费用江津网站建设效果好不好
  • 国外网页素材网站有没有专门做尾料回收的网站