中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-16 17:13
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 矢量汉字显示实例[源码] 查看 28,410 回复 86
楼 主 矢量汉字显示实例[源码] 发表于 2007-02-06 02:22 ·  中国 江苏 苏州 电信
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
因为我的小站现在要做成纯正的:以QB软件开发,源码发布,以及教学为主;
                VB源码发布,以及教学为辅

的一个小站,所以把这个源码贴到这里来,供大家参考。
 
[已使用 Gemini 解答]
Gemini 解答

技术背景与代码前提

该矢量汉字显示实例的核心依赖是PS格式曲线汉字库(如 hzk???.ps),而非DOS时代更常见的点阵字库(如UCDOS的 .hzk)。根据跟帖用户“本是”的分析,源码中通过 findfirst("*.ps", &ff, FA_ARCH) 扫描当前目录下的PS字库文件,若缺少该字库则无法显示汉字——这是虚拟机环境下(Post #8)无输出的直接原因。

格式与资源说明

  1. PS字库的特殊性
    此处的“PS”并非标准PostScript字体,而是当年中文软件圈流传的一种曲线汉字库格式(可能与早期金山、科印等汉卡/排版系统的非标准矢量字库有关),与UCDOS、CCDOS等主流点阵字库不兼容。该格式的公开文档极少,属于历史上的“民间流通格式”,依赖特定工具或逆向分析才能复用。

  2. 资源依赖的补充
    原作者提供的 KTDOT.rar 是该字库的配套资源,但需注意:

    • 此类历史字库可能涉及版权问题,合法使用需优先选择开源替代方案(如FreeType支持的TrueType字体,或通过DOS下的开源矢量渲染库间接实现);
    • 若需验证功能,可尝试寻找DOS下的开源曲线字库驱动(如基于FreeType 1.x的DOS移植版),或通过DOSBox挂载字库文件模拟运行。

历史语境下的合理性

该实例在2007年的价值在于:

  • 填补了DOS下“矢量汉字显示”的技术空白(当时多数DOS中文软件仍依赖点阵字库,放大后会模糊);
  • 展示了非标准资源(PS字库)的调用逻辑,对理解DOS下文件操作、图形渲染有参考意义。

但局限性也很明显:依赖冷门格式导致可复现性低,且源码未附带字库解析的核心逻辑(如贝塞尔曲线渲染、汉字编码映射),需结合字库格式的逆向分析才能完整理解。

后续讨论的补充

跟帖中“zyl910”提出的“PS格式资料缺失”问题,反映了当年中文技术圈的普遍困境:非标准格式多依赖民间流通的“经验性文档”或逆向工程,缺乏官方规范,这也是此类技术难以传承的主要原因。

附件
showhz.rar (41.63 KiB, 下载附件所需积分 1 点, 下载次数: 616)
欢迎光临happyBASIC小站:http://yxbasic.51.net
2 发表于 2007-03-28 12:26 ·  中国 江苏 苏州 中移铁通
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
这么好的源码,竟然没人顶???
欢迎光临happyBASIC小站:http://yxbasic.51.net
3 发表于 2007-03-28 22:36 ·  中国 广东 电信
初级用户
积分 92
发帖 41
注册 2005-12-23 22:40
UID 47754
状态 离线
4 发表于 2007-03-29 00:34 ·  中国 海南 儋州 电信
初级用户
★★
积分 199
发帖 101
注册 2007-03-13 01:44
UID 81536
状态 离线
不顶,顶了你又不送美女……
5 发表于 2007-03-29 03:26 ·  中国 四川 成都 教育网
中级用户
★★
积分 346
发帖 103
注册 2004-04-06 00:00
UID 21852
性别 男
状态 离线
6 发表于 2007-04-06 08:32 ·  中国 重庆 沙坪坝区 电信
新手上路
积分 2
发帖 1
注册 2007-04-06 08:11
UID 84152
性别 男
状态 离线
7 发表于 2007-04-06 10:50 ·  中国 江苏 苏州 电信
初级用户
积分 56
发帖 22
注册 2007-04-03 05:09
UID 83784
性别 男
状态 离线
顶啊
8 发表于 2007-04-07 08:30 ·  中国 江苏 苏州 电信
初级用户
积分 56
发帖 22
注册 2007-04-03 05:09
UID 83784
性别 男
状态 离线
为什么在虚拟机中的MS-DOS7.1运行完没看见有汉字出现?
9 发表于 2007-04-07 21:08 ·  中国 江苏 苏州 中移铁通
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
我没有在虚拟机中试过。。。。没有虚拟机。。。
欢迎光临happyBASIC小站:http://yxbasic.51.net
10 发表于 2007-04-07 21:48 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 2,223
发帖 789
注册 2005-01-27 00:00
UID 35703
性别 男
状态 离线
Originally posted by ksquest at 2007-4-7 08:30:
为什么在虚拟机中的MS-DOS7.1运行完没看见有汉字出现?


源码中有一行是:
b=findfirst("*.ps",&ff,FA_ARCH);
说明它需要在当前目录中有hzk???.ps曲线(不是矢量hzksl??)汉字库才能显示曲线汉字。
my major is english----my love is dos----my teacher is the buddha----my friends--how about U
11 发表于 2007-04-07 22:02 ·  中国 江苏 苏州 电信
初级用户
积分 56
发帖 22
注册 2007-04-03 05:09
UID 83784
性别 男
状态 离线
那么,happybasic大哥,你把那个文件也一起发出来啊!谢谢了!
12 发表于 2007-04-08 00:43 ·  中国 江苏 苏州 中移铁通
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
这个字库很常见啊,随便放一个吧

http://zhenlove.com.cn/cndos/fileup/files/KTDOT.rar
欢迎光临happyBASIC小站:http://yxbasic.51.net
13 发表于 2007-04-08 00:48 ·  中国 江苏 苏州 中移铁通
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
Originally posted by 本是 at 2007-4-7 21:48:


源码中有一行是:
b=findfirst("*.ps",&ff,FA_ARCH);
说明它需要在当前目录中有hzk???.ps曲线(不是矢量hzksl??)汉字库才能显示曲线汉字。


呵呵,这位兄弟要是有"本是兄"一半细心就不必发问了。。。

ps: To 本是,俺也在苏州。。。
欢迎光临happyBASIC小站:http://yxbasic.51.net
14 发表于 2007-04-08 02:02 ·  中国 江苏 苏州 电信
初级用户
积分 56
发帖 22
注册 2007-04-03 05:09
UID 83784
性别 男
状态 离线
我就是因为不是很懂C,所以才发问的。另:本人也在苏州地区,幸会。

还有happybasic兄,你的小站一打开就要求下一个ActiveX,给人一种不安全的感觉。据卡巴检测为一个广告程序!
15 发表于 2007-04-08 03:28 ·  中国 江苏 苏州 中移铁通
中级用户
★★
积分 298
发帖 118
注册 2006-03-01 13:30
UID 51161
状态 离线
那个51.net的空间,不是我加的,应该是服务商放的。
我联系看看服务商是怎么回事吧~~~ 
欢迎光临happyBASIC小站:http://yxbasic.51.net
论坛跳转: