悦读·观止

好了,我觉得这个东西可以拿出来见人了。

我在 年初的计划 中提到,要推进某个秘密站点的开发。这个站点,就是今天我要发布的这个名叫“悦读·观止”的站点:

http://yuedu.xyz

自 2013 年起,我开始大幅提升自己的阅读量。也就在这期间,我逐渐萌生了做这个站的想法。最初,我只是希望能在第一时间获得 Kindle 商店的特价信息;随着开发的逐步推进,我开始将自己读后的感想与书评归集在这个站上,也就是目前这第一版的悦读·观止了。

顾名思义,我希望您读得开心,所谓“悦读”;也希望以此来帮您节省选择书籍的时间,所谓“观止”。更多的信息,可以移步观看 此站的“关于”页

Enjoy it!

Categories: 原创下载 | Leave a comment

用 AWK 自动生成模块定义(.def)文件

编写 DLL 的时候,如果导出的函数过多,就往往会在编写 .def 文件的步骤大费周章,唯恐遗漏掉哪个函数。在这种情况下,就需要借助代码来处理这个文件了。嗯,AWK 是一个很赞的选择。

在这整个的处理过程中,最核心的技巧其实就是从头文件中提取所有的导出函数名称。为了便于提取,就需要统一函数的声明格式,这样才能使正则表达式发挥最大的威力。考虑下面的例子:

int MYAPI MyLibFoo1(int arg1);
int MYAPI MyLibFoo2(int arg1, int arg2);

当然,所有含有导出函数声明的头文件肯定是约定俗成地被放在某个目录下,比如 include。

接下来就是用于生成 .def 的 AWK 脚本了,如下:

1
2
3
4
5
6
7
8
# def_gen.awk
BEGIN { printf("LIBRARY \"MyLib\"\n\nEXPORTS\n\n") }
 
{
    if (0 != match($0, /MYAPI (MyLib.*)\(/, mr)) {
        printf("%s\n", mr[1])
    }
}

然后在 Cygwin 下执行这个脚本:

awk -f def_gen.awk path/to/include/*.h > MyLib.def

简单说明一下:

  1. BEGIN 语句块在整个的 AWK 扫描过程中只执行一次,因此可以用来输出 .def 的头信息。
  2. match 是正则表达式的匹配函数,所有匹配结果放在第三个参数之中。
Categories: 技术的角落 | Tags: | Leave a comment

一句话(59)

花了不到一天的时间,一口气读完了爱川晶的《六月六日诞生的天使》。莫说是推理小说了,把我读过的所有小说都算上,似这般沉迷的程度都是极少出现过的。这部作品有着《脑髓地狱》般的悬念设计和超越了《穆赫兰道》的情节翻转,再加上润物细无声的流畅行文,完全称得上一部叙述性诡计的佳作。推荐。

若是五分满分的话,我会给本作打五分。其中四分为客观打分,另一分则加在了书中那些能让读者生理反应爆棚的香艳描写上。#

Categories: 随感录 | Tags: , | Leave a comment

一句话(58)

爱丽丝有三宝:奎因,絮叨,栖麻搞。——有栖川有栖《女王国之城》读毕有感。

解释一下。“有栖”的英文拼写为 Alice;“奎因”是指作者的埃勒里·奎因式推理;“絮叨”是指拖沓冗长的剧情;“栖麻搞”是指书中有栖和麻里亚二角的暧昧情节。

此三宝者,放诸任意一部江神二郎系列作品中皆准。如我之前对《双头恶魔》的书评#

Categories: 随感录 | Tags: , | Leave a comment

一句话(57)

雷蒙德·钱德勒《漫长的告别》读毕,这本书让我对钱德勒刮目相看。菲利普·马洛仍然是那个玩世不恭的贫嘴美国佬,但整本书的故事性却甩出了《高窗》几条街——真是一波三折、跌宕起伏。在这本书里,先前《高窗》中那些高逼格的渲染不再显得做作,而是与硬汉马洛的历险记几近完美地结合在了一起。

当然,推理仍然不是这本书(或者说,很可能是马洛全系列)的着力点。但是,这又有什么关系呢?这本书已经足够好看了,推荐!#

Categories: 随感录 | Tags: , | Leave a comment