![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源代码
文章平均质量分 93
Liigo
当我沉默着的时候,我觉得充实;我将开口,同时感到空虚……
相对于篮球,我更喜欢足球;相对于象棋,我更喜欢围棋;相对于C,我更喜欢Rust;……
庄晓立(Liigo),男,80后,山东省梁山县人,2002年毕业于山东理工大学,十多年来长期从事软件技术研究和基础产品研发。
电子邮件: liigo@@qq..com;新浪微博: Liigo;G+: +Liigo Zhuang。欢迎来人来函以及来而不往非礼也之洽谈。
展开
-
RUST编程语言入门基础2024
Rust编程语言赋能所有人开发高可靠且高性能的软件。方式1:内联模块/// 文档 mod mod1 {// 代码 }方式2:文件模块mod mod2;//!文档 // 代码以上定义的mod1和mod2均为当前模块的子模块。// x: i32// mut变量y = 123;// 仅mut变量可以被赋值或被改变n: i32,Counter {n: 0,self.n#[test]assert_eq!assert_eq!assert_eq!Counter {原创 2024-05-09 18:42:52 · 1118 阅读 · 0 评论 -
在 IIS 5.1 中配置使用 ISAPI 扩展程序,XP sp2,[多图]
作者:庄晓立 (liigo)日期:2010年06月08日原创:http://blog.csdn.net/liigo/archive/2010/06/08/5654824.aspx转载请注明出处:http://blog.csdn.net/liigo 在 IIS 5.1 中配置使用 ISAPI 扩展程序(ISAPI Extension),我一直以为网络上一定有很多详细的教程,很原创 2010-06-08 10:02:00 · 7928 阅读 · 15 评论 -
理解 MyGUI 界面库的 IUnlinkWidget
作者:庄晓立(Liigo),2012-8-10。原创链接:http://blog.csdn.net/liigo/article/details/7851835转载请注明出处:http://blog.csdn.net/liigoMyGUI::IUnlinkWidget是一个纯虚类,以Java的语言来说它是一个interface,它有唯一的纯虚函数 void _unlinkWidg原创 2012-08-10 16:58:35 · 4003 阅读 · 1 评论 -
MyGUI 3.2 VC2010项目配置 HelloWorld
1、创建Win32 Project。 Windows application (Empty project)2、配置include路径:E:\liigo\mygui\MyGUI_3.2.0\MyGUIEngine\includeE:\liigo\mygui\MyGUI_3.2.0\Platforms\DirectX\DirectXPlatform\includeE:\原创 2012-07-30 11:14:16 · 4439 阅读 · 6 评论 -
用C语言实现SGF格式围棋棋谱解析器
这是本人(liigo)独立实现的SGF格式围棋棋谱文件解析器,本文介绍其实现细节。网络上肯定可以找到完善的开源的SGF解析器,这是毋庸置疑的,我不直接使用它们,也不参考它们的实现代码,而是自己独立编码实现,是有原因的,因为我想自己重复发明轮子,并且认为这样更有助于提高我的编码能力。(关于我的“一定要学会重复发明轮子”的不成熟的论调,今后我将会专门撰文表述。) 我(liigo)开发的这个SGF原创 2009-09-06 23:56:00 · 12429 阅读 · 3 评论 -
“基于关键字匹配的文本过滤系统”配置文件的设计和实现(C/C++源码)
本文原始链接:http://blog.csdn.net/liigo/archive/2009/10/29/4744700.aspx作者:liigo, 2009/10/29转载请注明出处:http://blog.csdn.net/liigo 假设有一个基于关键字匹配的文本过滤系统,或类似的系统,需要一个配置文件,用于设定欲过滤的关键字列表。该怎么设计这样一个配置文件呢?又该如何编原创 2009-10-29 19:55:00 · 5391 阅读 · 1 评论 -
基本的HTML文本解析器的设计和实现(C/C++源码),图文并茂
作者:庄晓立 (liigo)日期:2011-1-19原创链接:http://blog.csdn.net/liigo/archive/2011/01/19/6153829.aspx转载请保持本文完整性,并注明出处:http://blog.csdn.net/liigo关键字:HTML,解析器(Parser),节点(Node),标签(Tag) 这是进入2011年以来,本人(lii原创 2011-01-19 23:28:00 · 37099 阅读 · 69 评论 -
易语言版{大智慧/分析家/飞狐交易师}DLL插件接口开发模块(beta5),自定义股票软件公式扩展函数
作者:庄晓立(liigo)日期:2011/04/15 (2011/10/21更新)原创链接:http://blog.csdn.net/liigo/archive/2011/04/15/6326871.aspx转载请注明出处:http://blog.csdn.net/liigo关键字:股票软件 自定义公式 扩展函数 DLL 插件 C语言接口 易语言 大智慧(新一代) 分析家 飞狐交易原创 2011-04-15 23:29:00 · 29261 阅读 · 12 评论 -
实现CEGUI中文汉字输入法光标跟随(C/C++源码)
本文主要解决CEGUI中文汉字输入法“光标跟随”功能中最核心的地方,获取CEGUI编辑框(Editbox, MultiLineEditbox)中当前光标(Caret)的屏幕坐标。我(liigo)的这个解决方案是在研究和修改CEGUI源代码之后得到的。原创 2011-07-20 22:58:13 · 7544 阅读 · 7 评论 -
Linux 软件看门狗 watchdog
Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序。内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信。用户空间程序一旦打开 /dev/watchdog 设备(俗称“开门放狗”),就会导致在内核中启动一个1分钟的定时器(系统默认时间),此后,用户空间程序需原创 2013-07-02 18:18:41 · 60179 阅读 · 3 评论 -
看似简单的 fgets() 其实很不简单(坑爹的C语言)
很平常的一个C语言练习题:“使用 fgets() 读取一个ASCII编码的文本文件内容,向控制台逐行输出其中所有文本。”你能很轻松的做对这个题目吗?SHOW一段代码来看看。你写的代码是100%正确的吗?会有重大缺陷吗?重点思考以下几点:- 在文件内容为空(长度为零)时是否输出了一堆乱码?- 在文件以换行结束时是否重复输出了最后一行文本?- 在文件末尾没有换行原创 2013-08-10 18:05:53 · 9440 阅读 · 4 评论 -
借助动态代码生成技术在基于Webkit引擎的HTML5网页JS内调用易语言函数
前两天我协助朋友解决了一个技术问题,在此稍作记录和总结。具体来说,就是在使用基于Webkit引擎的封装组件wke的过程中,需要把一个易语言函数注册给JavaScript引擎,让它可以在网页里被调用(就像在网页里调用普通JavaScript函数一样)。如果能做到这一点,就基本实现了从JavaScript传递参数到易语言、易语言返回值给JavaScript的双向沟通机制,以后有广泛的应用空间。最终,我借助动态生成代码技术,纯手工书写了几行X86机器指令,人肉编译形成一个fastcall调用约定的回调函数,传递给原创 2015-03-03 23:25:19 · 15267 阅读 · 14 评论 -
Laravel 5.1 源码阅读笔记
Laravel 5.1 源码阅读笔记,主要涉及入口文件、Kernel、Application、Pipeline、Middleware、Router、Request、Response、Bootstrap等等。原创 2015-11-05 18:04:42 · 11149 阅读 · 2 评论 -
修改Go语言(golang)编译器源代码让它支持UTF-8 BOM
Go语言(golang)第一个正式版Go1发布了,但是这个新兴的编程语言还是非常不完善。这不,我(Liigo)又发现它的编译器竟然不支持编译带BOM的UTF-8编码的.go源文件。这就很奇怪,该语言明明要求源代码文件.go必须是UTF-8编码,但有不允许带UTF-8 BOM。要知道,这个世界上带BOM的文件太多了,很多文本编辑器/代码编辑器/IDE支持生成、甚至默认生成带有BOM的UTF-8文件。原创 2012-04-16 22:34:23 · 34725 阅读 · 33 评论 -
MIPS平台OpenWrt路由器系统内的Rust应用程序开发
使用 Rust 语言,交叉编译开发 MIPS(el) + OpenWrt 路由器平台(MT7620A CPU)下的应用软件。原创 2014-09-17 21:41:44 · 14434 阅读 · 4 评论 -
基于libuv的最精简Web服务器:tinyweb v1 v2 v3 (C语言源码)
一年之前,我发表过一篇博客《》原创 2014-08-07 21:07:27 · 12852 阅读 · 6 评论 -
tinyweb: C语言 + libuv 开发的最精简的WebServer (附源码)
libuv 是一个高性能事件驱动网络库,是 Node.js 的底层实现。经过我(Liigo)在实际项目中的深度应用,发现 libuv 在代码质量、运行效率、网络吞吐量、稳定性、跨平台等多方面都相当优秀,是一款不可多得的开源产品,可以说从质量到名气都不差。libuv 的缺点是易用性太差,文档严重不足,入手门槛较高。在这些方面它跟陈硕的muduo 库差距很大,muduo的易用性太棒了,还有一本原创 2013-06-22 09:44:52 · 22342 阅读 · 9 评论 -
移植 libuv 到 Visual C++ 6.0 并支持在 Windows XP 系统下编译
我从一年前(大概2013年6,7月份)开始在业余时间做这项移植工作,走走停停,陆续用了一两个月的时间,才基本完成。这期间做了详细的移植记录,现在发布出来,希望对某些人有用。就在昨天(2014年7月12日),我又把移植的代码同步到最新的libuv并发布到Github上;但是之前的移植记录没有变更,或许在一定程度上已经部分失效了。原创 2014-07-13 14:39:26 · 7039 阅读 · 1 评论 -
自己写一个安卓手机软件计算煮饭时间
最近这些日子,经常需要每天晚上在电饭锅上设置定时煮饭,以备第二天早上的早餐。但是计算倒计时时间是一件讨厌并且费脑子的事情。于是我趁今天周末写了这么一个Android手机软件,还开放源代码了。“煮饭时间”——一个很简单的计算煮饭时间的Android手机软件,作者Liigo。项目首页:https://github.com/liigo/cooktime原创 2014-01-11 20:58:36 · 6535 阅读 · 4 评论 -
实战试用 Android NDK 初见成效
作者:庄晓立 (liigo)日期:2011.6.15原创链接:http://blog.csdn.net/liigo/archive/2011/06/14/6544649.aspx转载请注明出处:http://blog.csdn.net/liigo 我(liigo)以前的围棋SGF棋谱解析器是使用C语言开发的,为了省事和加快移植,就不打算用Java语言重写了,计划通过 JN原创 2011-06-14 20:02:00 · 9462 阅读 · 11 评论 -
使用天乐软件加密狗(JDProtect)保护您的软件,防止程序被跟踪/逆向/反编译/破解
本文介绍在易语言中使用天乐软件加密狗(JDProtect)保护您的软件,防止程序被跟踪/逆向/反编译/破解。关键点是在易语言中调用.lib静态库函数的技术和方法。原创 2011-04-08 21:56:00 · 6601 阅读 · 3 评论 -
"易语言.尘土"界面库2.0版源代码分析(5):Windows消息路由机制(上)
很高兴看到"易语言.尘土"界面库这个原创性易语言模块近期又持续升级,版本到2.1了。看来我这个源代码分析系列文章还得继续跟进。这最新一篇,重点关注该界面库内部的Windows消息路由机制。Windows消息(如WM_PAINT)由Windows操作系统产生,发往相应窗口的消息处理函数(WndProc)。依据前面的分析,我们已经知道,消息在模块内部被EDust_WndProc()派发到对应窗口对象的“消息过程()”方法(继承自“_窗口基类”)。接下来Windows消息是如何被处理的呢?本文将揭开谜底。原创 2010-10-28 18:47:00 · 5631 阅读 · 1 评论 -
C/C++:遍历子目录,枚举文件,FindFirstFile + FindNextFile
平时写程序时经常会用到的遍历子目录枚举文件的功能,用 Windows API 函数 FindFirstFile() 和 FindNextFile() 直接实现起来会相当繁琐,有许多细节需要注意和记忆,要在短时间内写出可以正常工作的、没有BUG的、能够递归遍历多层子目录并枚举其中所有文件的程序代码,不是一件轻松的事情。以下这个 doFileEnumeration() 函数,是我(liigo)在原创 2009-09-13 17:12:00 · 14437 阅读 · 6 评论 -
"易语言.尘土"界面库2.0版源代码分析(2):创建窗口(CreateWindow)
作者:liigo原文链接:http://blog.csdn.net/liigo/archive/2009/06/28/4304295.aspx转载请注明出处:http://blog.csdn.net/liigoliigo: "易语言.尘土"界面库2.0版源代码分析系列 我们都知道,在Windows操作系统下,几乎所有的窗口和窗口组件都是由API函数CreateWindow/原创 2009-06-28 10:38:00 · 7160 阅读 · 10 评论 -
"易语言.尘土"界面库2.0版源代码分析(4):窗口的消息处理函数(WndProc)(下)
作者:liigo原文链接:http://blog.csdn.net/liigo/archive/2009/08/30/4499138.aspx转载请注明出处:http://blog.csdn.net/liigoliigo: "易语言.尘土"界面库2.0版源代码分析系列 在前一篇分析文章中,我们已经找到了,"易语言.尘土"界面库2.0版内部所有窗口共用的消息处理函数(WndP原创 2009-08-30 12:28:00 · 8889 阅读 · 8 评论 -
"易语言.尘土"界面库2.0版源代码分析(1):缘起
作者:liigo原文链接:http://blog.csdn.net/liigo/archive/2009/06/23/4292691.aspx转载请注明出处:http://blog.csdn.net/liigoliigo: "易语言.尘土"界面库2.0版源代码分析系列 最近拿到一份易语言模块的源代码,"易语言.尘土"界面库2.0版,售价200元人民币啊,又是易语言论坛大牛g原创 2009-06-23 20:53:00 · 5817 阅读 · 4 评论 -
批量修改文件名
刚刚下载了魅族M8手机上用的一堆图标文件,PNG格式,90x90象素,大约有一千多个文件。原有的文件名全是这种形式:“1000个常用图标-*.png”,其中*号处是编号,从1到1005。我感觉这文件名太长了,有些累赘,希望批量修改成“*.png”的形式。各人有各人的办法,我想到的第一个办法就是,写段程序搞定它。于是花了两分钟写出下面的代码,又用了几十秒运行程序,OVER。 (图片原创 2009-08-15 16:55:00 · 2190 阅读 · 12 评论 -
"易语言.尘土"界面库2.0版源代码分析(3):窗口的消息处理函数(WndProc)(上)
作者:liigo原文链接:http://blog.csdn.net/liigo/archive/2009/08/02/4401780.aspx转载请注明出处:http://blog.csdn.net/liigoliigo: "易语言.尘土"界面库2.0版源代码分析系列 上一篇提到,本篇的主要任务是找到“窗口的消息处理函数(WndProc)”。 Windows系统下的窗原创 2009-08-02 15:46:00 · 7847 阅读 · 2 评论 -
为魅族M8手机开发软件《M8空中警报》(M8AirAlarm) ,已开源
《M8空中警报》(M8AirAlarm) v1.0 作者:liigo, 2009/5, http://blog.csdn.net/liigo 当您的魅族M8手机不慎跌落时,本软件将在M8落地之前,给予空中警报(声音),提醒您及时伸手拉住8妹,减少不必要的经济损失! 如果M8向下自由落体,理论上在脱手的那一刻就会警报,实际上稍微有一点延迟。如果垂直向上抛起,M8将在到达最高点的那一刻警报。最小原创 2009-05-23 16:40:00 · 2552 阅读 · 2 评论 -
C/C++: 十六进制转10进制源码
int hex_char_value(char c){ if(c >= 0 && c <= 9) return c - 0; else if(c >= a && c <= f) return (c - a + 10); else if(c >= A && c <= F) return (c - A + 10); ass原创 2009-05-17 21:55:00 · 12125 阅读 · 8 评论 -
围棋打谱软件中自动提子功能的实现,C/C++源码
本文首发地址:http://blog.csdn.net/liigo/archive/2009/09/22/4582018.aspx转载请注明出处:http://blog.csdn.net/liigo作者:liigo, 2009/09/22 在下围棋时,当一个棋子落到棋盘上,它会对周围对方棋子的死活产生影响,如果对方棋子没有气了(死了),必须从棋盘上拿掉(提子)。这个过程体现到围原创 2009-09-22 23:20:00 · 6949 阅读 · 0 评论 -
我(liigo)四年前的JAVA习作"扫雷游戏"和"个人消费管理"成功运行在M8手机上
开发于2005年底的两个J2ME软件,“扫雷游戏”和“个人消费管理”,已在魅族M8手机中的JAVA虚拟机(辰元JavaVM)上运行正常。源码已提交到GOOGLE CODE上开源。 当时我是为Nokia3100开发的,使用的是MIDP1和CLDC1,通行于各种JAVA虚拟机,但显然是不支持触摸屏操作的。可是程序还是那个程序(JAR),未经任何修改拿到M8的JAVA虚拟机上运行,自动就支持触摸原创 2009-11-19 19:11:00 · 2459 阅读 · 0 评论 -
liigo:在PC电脑屏幕上模拟显示移动设备屏幕的物理尺寸示意图
准备买平板电脑(MID)了,是选个7英寸大的屏幕呢,还是8英寸、9英寸、10英寸的屏幕呢?7英寸屏幕到底多大呢,10英寸屏幕到底多大呢,完全没有概念嘛!如果手边有一把直尺,我们可以在纸上画出一个示意图。问题是直尺还真不好找。怎么办呢?运行我(liigo)这个软件,在您的PC电脑屏幕上画出一个示意图!在屏幕上显示的物理尺寸,等同于它的实际尺寸。多大多小一目了然。原创 2010-11-28 21:20:00 · 8018 阅读 · 6 评论 -
在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output参数返回一个或多个值,返回一个记录集(recordset)。无论哪一种情况,无论输入输出参数多复杂的存储过程,都可以在易语言中正确调用,准确的传入参数,并获取正确的输出数据。下面我(liigo)分多种情况介绍在易语言中调用MS SQL SERVER数据库存储过程的详细方法,使用数据库操作支持库(eDatabas原创 2010-08-24 13:27:00 · 13952 阅读 · 17 评论 -
自己编写程序批量合并多个“规范定义电子名片(vCard)”文件
很明确的需求:把指定目录下的所有vCard文件(*.vcf),合并成一个vCard文件。用易语言完成此功能。小程序,也能帮大忙。原创 2010-08-03 18:59:00 · 10336 阅读 · 7 评论 -
在静态库LIB/OBJ文件中搜索定位病毒特征码所属函数,C/C++源码
本文目标:在指定的某个LIB或OBJ文件中,搜索定位某一段可执行代码(X86指令集合),最终确定其所属函数。基本思路:解析LIB文件二进制格式(关于LIB/OBJ基本结构,可参见本人之前的一篇博文),遍历LIB文件中的所有OBJ,遍历每一个OBJ中的所有节(Section),在节(Section)的数据块(RawData)中搜索特征码,如果搜到则打印出此节(Section)中定义的所有符号(Symbol),根据其中的函数符号及相关偏移即可判断特征码所属函数。原创 2010-07-12 01:20:00 · 7245 阅读 · 8 评论 -
DXUTBlendColor::Blend()实现DirectX3D窗口GUI动态组件的分析研究(多图)
作者:liigo时间:2010/4/26首发地址:http://blog.csdn.net/liigo/archive/2010/04/26/5530942.aspx转载请注明出处:http://blog.csdn.net/liigo 前传 前传,故事发生在原作之前,而创作于原作之后。我借此宝地,非常抱歉地声明,此文分析方法有误!错误源于我对 fElapsedTime原创 2010-04-26 18:07:00 · 3093 阅读 · 4 评论 -
找回旧帖:谢谢斩月,谢谢monkeycz,谢谢dtcser,谢谢超级大BUG
一个偶然的时间,我无意中发现,我(liigo)于2008年10月份发表于CSDN博客上的一篇小文,《谢谢斩月,谢谢monkeycz,谢谢dtcser、超级大BUG》,已经无缘无故的消失了。现在我只能通过百度快照才能证实它曾经存在过: 百度快照地址:http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c438014原创 2010-01-10 11:35:00 · 4154 阅读 · 5 评论 -
由C/C++的开源项目和开源协议说开去——和CSDN博客专家王绍全的讨论记录
由C/C++的开源项目和开源协议说开去 ——和CSDN博客专家王绍全的讨论记录 以下,是 2009/11/30 在 CSDN博客专家群,我(liigo)与CSDN博客专家王绍全(Eric)的讨论记录,发表之前已征得他的同意。内容上,主要表达了我私下里对于C/C++开源项目的抱怨,和由于版权的关系不能有效地将其应用于工作中的烦恼。 王绍全[wwws原创 2009-11-30 18:14:00 · 4448 阅读 · 3 评论 -
在魅族M8手机(WinCE6.0系统)上编程设置文件关联(C/C++源码)
在魅族M8手机(WinCE6.0系统)上设置文件关联,需生成以下注册表项: HKEY_CLASSES_ROOT/.xxx defaultvalue: xxxfileHKEY_CLASSES_ROOT/FileAssociate/xxxfile/shell defaultvalue: HKEY_CLASSES_ROOT/FileAssociate/xxxfi原创 2009-11-22 15:02:00 · 3257 阅读 · 3 评论