上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要: 由于开发工具中需要在右侧以tab页形式展示左侧树形控件选中项,所以需要自己来扩展该控件; 效果图如下: 头文件实现: #pragma once#include "resource.h"class CMyTabCtrl : public CMFCTabCtrl{DECLARE_DYNAMIC(CMy... 阅读全文
posted @ 2017-11-14 13:08 Mr.R123 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 一直在寻找一款lua作为界面开发语言脚本框架,类似于web开发,使用html做界面, lua作为脚本语言进行行为控制,htmlayout是不二选择,但是其搭配的默认脚本并不是lua,这里找到一个 开源的框架,将htmlayout进行了改造,使其支持lua脚本作为逻辑控制语言; 本系列文章将对mfcui源码进行简要分析,并试图将其改造为自己的界面开发框架,该框架使用的是lua5.1;... 阅读全文
posted @ 2017-11-11 12:45 Mr.R123 阅读(202) 评论(0) 推荐(0) 编辑
摘要: sproto的简介略过,这里直接上代码,新建proto.lua文件,内容如下: local sprotoparser = require "sprotoparser"local proto = {}proto.c2s = sprotoparser.parse [[.package {type 0 : integerse... 阅读全文
posted @ 2017-11-08 17:38 Mr.R123 阅读(1854) 评论(0) 推荐(0) 编辑
摘要: 为什么要引入弱表? 我们都知道,lua具有自动内存管理,我们只管创建对象,无需删除对象,对于不再需要的对象只需要简单置为nil, lua会自动删除那些被认为是垃圾的数据;问题就在于,什么对象才是垃圾对象呢?有时候,程序员很清楚的知道某个对象 是垃圾,而lua却无法发现; 比如下面的例子: t = {};-- 使用一个table作为t的key值key1 = {na... 阅读全文
posted @ 2017-10-31 16:31 Mr.R123 阅读(2858) 评论(0) 推荐(1) 编辑
摘要: 接上一篇分析《skynet服务之launcher》,本篇我们继续来分析一下lua中的协程如何与服务有机结合的,关于lua中协程的解释参见本文《lua中协程的理解》; 上一篇分析到,当一个lua服务收到消息后,在lua层,最终会执行到raw_dispatch_message函数,代码如下: local function raw_dispatch_message(prototype... 阅读全文
posted @ 2017-10-31 15:41 Mr.R123 阅读(973) 评论(0) 推荐(0) 编辑
摘要: 最近在研究云风的skynet服务端框架程序,里面服务的回调代码中用到协程,这里仔细研究一下; 一、什么是协程? (1)线程:我们知道C中线程就是一个执行序列,我们在程序中创建多线程时,在单核心CPU状态下,一个时刻其实只有一个线程在执行, 在某个时间片内执行的是那个线程对程序员来说是不确定,程序员可以指定线程的优先级,但是真正的线程调度是由CPU调度来决定的; (2)协程:Lua中的... 阅读全文
posted @ 2017-10-31 10:53 Mr.R123 阅读(480) 评论(0) 推荐(1) 编辑
摘要: 本文着重讨论skynet框架中,第一个服务launcher的启动流程,其他服务也是类似的; launcher.lua代码如下: local skynet = require "skynet" local core = require "skynet.core" require "skynet.man... 阅读全文
posted @ 2017-10-29 08:59 Mr.R123 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 通常来说,C函数需要保留一些非局部的数据,也就是指那些超过他们作用范围的数据。C语言中我们使用全局变量或者static变量来满足这种需要。然而当你为Lua设计一个程序库的时候,全局变量和static变量不是一个好的方法。首先,不能将所有的Lua值保存到一个C变量中。第二,使用这种变量的库不能在多个Lua状态的情况下使用。 一个替代的解决方案是将这些值保存到一个Lua全局变两种,这种方法解决了... 阅读全文
posted @ 2017-10-27 14:45 Mr.R123 阅读(1422) 评论(0) 推荐(0) 编辑
摘要: 本文着重讨论skynet框架中,一个服务的启动流程; 本文以一个编写好的service.lua服务作为示例,代码如下: -- 每个服务独立, 都需要引入skynetlocal skynet = require "skynet"require "skynet.manager"-- 引入 skynet.registerlocal ... 阅读全文
posted @ 2017-10-26 17:25 Mr.R123 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 1、./configure --prefix=/usr/curl-7.55 --disable-static --enable-threaded-resolver --enable-smtp --enable-pop3 2、make 3、make install 以上安装版本为:curl-7.55.1 #include "skynet.h"#include "skynet_han... 阅读全文
posted @ 2017-10-20 00:01 Mr.R123 阅读(176) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页