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

加强企业网站建设作用国外空间网站源码

加强企业网站建设作用,国外空间网站源码,网络营销与推广书籍,企业文化管理咨询系列文章目录 lua调用C/C的函数#xff0c;十分钟快速掌握 C调用lua脚本#xff0c;包括全局函数绑定、类绑定#xff0c;十分钟快速掌握 系列文章目录摘要环境使用步骤码代码自定义函数多返回值变长参数 自定义类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的融合提供了一种极具便利性和效率的解决方案。 环境 工具\组件版本说明Windows10visual studio2022lua5.4sol23.2.3C17sol2需要 使用步骤 lua头文件和静态链接库或者动态库从官方网站下载预编译好的即可当然如果你有自定义需求也可自行修改编译。 引入sol2头文件从github上下载。 # 就是这三个文件要按此层次结构放好。 │ sol.hpp │ └─solconfig.hppforward.hppvisual studio新建个项目C语言标准设置为C17。 加入头文件和库文件到项目中。 接下来就是码代码了。 码代码 自定义函数 多返回值 通过使用sol2我们不需要自己再写包装方法这一下就省了不少代码。 std::tupleint,const char*, double multipleResultFunc(int a, const char* b, double c) {//return std::tupleint, 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_castint( 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.hppsol::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_usertypemy_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::vectorunsigned long,class std::allocatorunsigned 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.sczhlp.com/news/157900/

相关文章:

  • 大连网站维护网站开发需要多线程吗
  • 网站首页关键词如何优化洛可可设计公司简介
  • 课题网站建设验收总结报告腾讯企业邮箱登录入口免费
  • 摄影师网站推荐网站上的动图都怎么做的
  • 花都网站建设公司怎么样企业网站可以免费做吗
  • dedecms网站成都网站建设搭建
  • 简洁大方的网站模板专业制作网页公司价格
  • wordpress网站做成app6免费公司注册网站吗
  • 山东网站制作策划电商分销平台
  • 工信部网站备案多久成都维尼网络 网站建设
  • cms做淘宝客网站网页制作公司地址
  • 乌市做网站的公司如何注册百度账号
  • 做网站映射tcp保定网站公司
  • 关于申请建设网站申请报告云南网官网
  • 商业网站建设案例课程百度云沈阳模板建站公司推荐
  • 那些知名网站是外包做的做外贸方面的网站
  • 郑州网站建站模板wordpress提示插件安装
  • 完整教程:如何优雅的布局,height: 100% 的使用和 flex-grow: 1 的 min-height 陷阱
  • MyBatis缓存架构深度拆解:从PerpetualCache的LRU陷阱到Redis分布式二级缓存防穿透实战 - 详解
  • 2025柔版印刷机厂家 TOP 企业品牌推荐排行榜,塑编袋,编织袋,阀口袋,重包膜,机组式,卫星式,不换版,FFS 重载膜,水泥袋柔版印刷机公司推荐!
  • 福田深圳网站建设产品推广网站排名
  • 网站建设主要产品wordpress插件如何使用教程
  • 网站的模块单页营销网站
  • 重新做网站做公司网站公司
  • 婚纱网站模板免费下载跟甜蜜定制一样的app
  • 做管理信息的网站怎么做电商运营
  • 学用mvc4做网站wordpress 数据导出
  • 软件开发和网站开发哪个更好网站seo文章
  • zeronet网站开发芜湖营销网站建设
  • 网站建设建设公司淄博网站制作高端形象