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

上海做网站的知名企业做网站的目的是什么

上海做网站的知名企业,做网站的目的是什么,人力资源公司是中介吗,微商城 手机网站编译环境#xff1a;Ubuntu16.04 64位 交叉编译工具#xff1a;arm-hisiv500-linux-gcc 文章目录 1. 项目背景2. lua开源版本选择3. 封装代码3.1 源码简介3.2 封装类3.2.1 头文件3.2.2 类的实现3.3.3 sample代码 1. 项目背景 使用lua脚本#xff0c;读取key对应的值#x… 编译环境Ubuntu16.04 64位 交叉编译工具arm-hisiv500-linux-gcc 文章目录 1. 项目背景2. lua开源版本选择3. 封装代码3.1 源码简介3.2 封装类3.2.1 头文件3.2.2 类的实现3.3.3 sample代码 1. 项目背景 使用lua脚本读取key对应的值用作设备的默认配置。 2. lua开源版本选择 使用lua-5.4.6.tar.gz点击下载早期使用lua-5.0.2.tar.gz在部分平台上存在浮点运算错误的问题放弃。 3. 封装代码 3.1 源码简介 源码的目录结构比较简单只有一个src目录Makefile略作修改即可或者根据自己项目做简化。 lua.hpp文件内容如下外部调用主要用到就是这三个头文件在编译C工程时注意extern “C” // lua.hpp // Lua header files for C // extern C not supplied automatically because Lua also compiles as Cextern C { #include lua.h #include lualib.h #include lauxlib.h } 3.2 封装类 3.2.1 头文件 #ifndef __LUA_CONFIG_H__ #define __LUA_CONFIG_H__#include string #include pthread.hstruct lua_State; typedef struct lua_State lua_State;class LuaConfig { public:static int Initialize(void);static int Invalidate(void);static LuaConfig* instance(void); private:static LuaConfig* s_instance;LuaConfig(void);virtual ~LuaConfig(void);LuaConfig(LuaConfig ); // 拷贝构造函数禁止拷贝public:int Init(const char * filename);//要解析的lua文件可以按照lua语法包含其他luavoid unInit();/// 根据传入的键值返回相应的字符串/// key为要访问的键值/// defaultValue为默认值当访问的键值不存在时返回std::string getString(const char * key, const char * defaultValue);/// 根据传入的键值返回相应的double值,与getString类似/// key为要访问的键值/// defaultValue为默认值当访问的键值不存在时返回double getNumber(const char * key, double defaultValue 0);private:int TravelTable(const char * key);private:lua_State *m_luastate;pthread_mutex_t m_Mutex; };#endif //__LUA_CONFIG_H__ 3.2.2 类的实现 #include LuaConfig.h #include string.h #include stdlib.hextern C {#include lua/lua.h#include lua/lauxlib.h#include lua/lualib.h };int LuaConfig::Initialize(void) {if(s_instance ! NULL)return -1;s_instance new LuaConfig;return 0; } int LuaConfig::Invalidate(void) {if(s_instance NULL)return 0;delete s_instance;return 0; } LuaConfig* LuaConfig::instance(void) {return s_instance; }LuaConfig* LuaConfig::s_instance NULL;LuaConfig::LuaConfig() {m_luastate NULL;pthread_mutex_init(m_Mutex, NULL); }LuaConfig::~LuaConfig() {unInit();pthread_mutex_destroy(m_Mutex); }int LuaConfig::Init(const char * filename) {if (m_luastate ! NULL)return -1;if (filename NULL)return -2; #if 0 // 5.0.2的封装m_luastate lua_open();if (m_luastate NULL)return -3;luaopen_base(m_luastate);luaopen_table(m_luastate);luaopen_io(m_luastate);luaopen_string(m_luastate);luaopen_math(m_luastate);luaopen_debug(m_luastate);//luaopen_lfs(m_luastate);//luaopen_bitlib(m_luastate);if (lua_dofile(m_luastate, filename) ! 0)return -4; #else//5.4.6m_luastate luaL_newstate();if (m_luastate NULL)return -3;luaL_openlibs(m_luastate);if (luaL_dofile(m_luastate, filename) ! 0)return -4; #endifreturn 0; }void LuaConfig::unInit() {if (m_luastate ! NULL){lua_close(m_luastate);m_luastate NULL;}return; }std::string LuaConfig::getString(const char * key, const char * defaultValue) {pthread_mutex_lock(m_Mutex);int nTop lua_gettop(m_luastate);int status TravelTable(key);std::string ret defaultValue;if( (status 0) (lua_isstring(m_luastate, -1))){ret lua_tostring(m_luastate, -1);}lua_settop(m_luastate, nTop);pthread_mutex_unlock(m_Mutex);return ret; }double LuaConfig::getNumber(const char * key, double defaultValue) {pthread_mutex_lock(m_Mutex);int nTop lua_gettop(m_luastate);int status TravelTable(key);double ret defaultValue;if( (status 0) (lua_isnumber(m_luastate, -1))){ret lua_tonumber(m_luastate, -1);}lua_settop(m_luastate, nTop);pthread_mutex_unlock(m_Mutex);return ret; }int LuaConfig::TravelTable(const char * key) {// 创建匿名函数int len strlen(key) 16;char* szFunc (char*)malloc(len);memset(szFunc, 0, len);sprintf(szFunc, return %s, key);int status luaL_loadbuffer(m_luastate, szFunc, strlen(szFunc), table_travel);if(status 0){status lua_pcall(m_luastate, 0, LUA_MULTRET, 0);}free(szFunc);return status; } 3.3.3 sample代码 LuaConfig::Initialize(); LuaConfig* pCfg LuaConfig::instance(); pCfg-Init(./test.lua);int testA (int)LuaConfig::instance()-getNumber(testA, 0); std::string testB LuaConfig::instance()-getString(testB, 123456);if (pCfg ! NULL) {pCfg-unInit();LuaConfig::Invalidate(); } 以上。 转载请注明出处如有错漏之处敬请指正。
http://www.w-s-a.com/news/221208/

相关文章:

  • 网站建设与用户需求分析加盟店排行榜加盟项目排行榜
  • 柳州市诚信体系建设网站wordpress建手机网站吗
  • 网站策划书是什么水产公司网站源码
  • 温州做网站多少钱网站服务器机房
  • 网站公司设计 网站首页什么网站专门做图片
  • 书店网站怎么做网站点击快速排名
  • 太阳镜商城网站建设公司做网站
  • 如何制作个人作品网站宣传片拍摄合同
  • 关于微网站策划ppt怎么做做插画的网站
  • 做设计网上揽活哪个网站最好中企动力算大厂吗
  • 电子商务网站开发常用工具牡丹江吧
  • 四川成都网站制作公司wordpress 获取某个分类的文章
  • wordpress 编辑器推动门户网站建设不断优化升级
  • 做游戏网站的前景温江区建设局网站
  • 济南做微网站推广做网站seo优化总结
  • 巢湖网站建设电话长沙大型互联网公司
  • wordpress站群主机海南人
  • 云南网站建设维护商业网站建设教程
  • 云南省滇中引水工程建设管理局网站jsp个人网站设计
  • 网站建设 域名业务 邮箱互联网装饰网站
  • 建设厅技工在哪个网站上查询有了网站模板 还要怎样做
  • 城市联盟网站怎么做百度云网站建设视频教程
  • 织梦cms 官方网站网页视频如何下载到电脑
  • 查询建设公司业绩网站国外外链平台
  • 搭建直播网站需要怎么做做石材网站步骤
  • 移动网站如何做权重wordpress 统计字数 插件
  • 编写网站的软件百度指数教程
  • 网站改版建议策划书做设计什么兼职网站
  • 北京做兼职网站文创产品设计流程
  • 南阳做玉器网站wordpress 图片被缩小