中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
English/Chinese Fix Translation
作者:
标题: 矢量汉字显示实例[源码] 上一主题 | 下一主题
happybasic
中级用户





积分 298
发帖 118
注册 2006-3-1
状态 离线
『楼 主』:  矢量汉字显示实例[源码] [已使用 LLM 解释]

因为我的小站现在要做成纯正的:以QB软件开发,源码发布,以及教学为主;
                VB源码发布,以及教学为辅

的一个小站,所以把这个源码贴到这里来,供大家参考。
 
LLM 解释

技术背景与代码前提

该矢量汉字显示实例的核心依赖是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格式资料缺失”问题,反映了当年中文技术圈的普遍困境:非标准格式多依赖民间流通的“经验性文档”或逆向工程,缺乏官方规范,这也是此类技术难以传承的主要原因。



附件 1: showhz.rar (2007-2-6 02:22, 41.63 KiB, 下载附件所需积分 1 点 ,下载次数: 616)


欢迎光临happyBASIC小站:http://yxbasic.51.net
2007-2-6 02:22
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
happybasic
中级用户





积分 298
发帖 118
注册 2006-3-1
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

这么好的源码,竟然没人顶???




欢迎光临happyBASIC小站:http://yxbasic.51.net
2007-3-28 12:26
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
wwwlgh
初级用户





积分 92
发帖 41
注册 2005-12-23
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下



2007-3-28 22:36
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
download
初级用户





积分 199
发帖 101
注册 2007-3-13
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

不顶,顶了你又不送美女……


2007-3-29 00:34
查看资料  发短消息  网志   编辑帖子  回复  引用回复
estar
中级用户





积分 346
发帖 103
注册 2004-4-6
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下



2007-3-29 03:26
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zank
新手上路





积分 2
发帖 1
注册 2007-4-6
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下



2007-4-6 08:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ksquest
初级用户





积分 56
发帖 22
注册 2007-4-3
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

顶啊


2007-4-6 10:50
查看资料  发短消息  网志   编辑帖子  回复  引用回复
ksquest
初级用户





积分 56
发帖 22
注册 2007-4-3
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

为什么在虚拟机中的MS-DOS7.1运行完没看见有汉字出现?


2007-4-7 08:30
查看资料  发短消息  网志   编辑帖子  回复  引用回复
happybasic
中级用户





积分 298
发帖 118
注册 2006-3-1
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

我没有在虚拟机中试过。。。。没有虚拟机。。。




欢迎光临happyBASIC小站:http://yxbasic.51.net
2007-4-7 21:08
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2221
发帖 789
注册 2005-1-27
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

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
2007-4-7 21:48
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ksquest
初级用户





积分 56
发帖 22
注册 2007-4-3
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

那么,happybasic大哥,你把那个文件也一起发出来啊!谢谢了!


2007-4-7 22:02
查看资料  发短消息  网志   编辑帖子  回复  引用回复
happybasic
中级用户





积分 298
发帖 118
注册 2006-3-1
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

这个字库很常见啊,随便放一个吧

http://zhenlove.com.cn/cndos/fileup/files/KTDOT.rar




欢迎光临happyBASIC小站:http://yxbasic.51.net
2007-4-8 00:43
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
happybasic
中级用户





积分 298
发帖 118
注册 2006-3-1
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

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
2007-4-8 00:48
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ksquest
初级用户





积分 56
发帖 22
注册 2007-4-3
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

我就是因为不是很懂C,所以才发问的。另:本人也在苏州地区,幸会。

还有happybasic兄,你的小站一打开就要求下一个ActiveX,给人一种不安全的感觉。据卡巴检测为一个广告程序!


2007-4-8 02:02
查看资料  发短消息  网志   编辑帖子  回复  引用回复
happybasic
中级用户





积分 298
发帖 118
注册 2006-3-1
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

那个51.net的空间,不是我加的,应该是服务商放的。
我联系看看服务商是怎么回事吧~~~ 




欢迎光临happyBASIC小站:http://yxbasic.51.net
2007-4-8 03:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: