中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-26 12:30
47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行
DOS汉化世界 & 中文系统 (中文化室) » 有了字库文件,怎么在DOS下显示汉字
可打印版本  1,699 / 3
第1楼 ub 发表于 2004-02-22 00:00
初级用户 发帖 12 积分 140
有了字库文件,怎么在DOS下显示汉字
如题!
第2楼 Kinglion 发表于 2004-04-24 00:00
铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室
我编写的显示汉字的C语言头文件
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define Byte unsigned char
#define Word unsigned int
int flag16, flag24;
void out16hz(int,int,int,int,char *);
void out24hz(int,int,int,int,int,int,char *);
int convert(Byte ch,int n);

void out16hz(int x,int y,int z,int color,char *p)
{
Word num, QM,WM,flag=0;
int recod,i,j,k;
long pointer;
char Bit;
flag16=open("c:\\ccdos\\hzk16", O_RDWR|O_BINARY);
if(flag16==-1){ printf("cannot open hz16\n"; exit(1);}
while((num=*p++)!=0)
{
if(num>0xA1)
if(flag==0)
{ QM=(num-0xA1)&0x07F; flag=1; }
else
{
WM=(num-0xA1)&0x07F;
flag=0;
recod=QM*94+WM;
pointer=recod*32L;
lseek(flag16,pointer,SEEK_SET);
read(flag16,Bit,32);
for(i=0;i<16;i++)
for(j=0;j<2;j++)
for(k=0;k0xA1)
if(flag==0)
{ QM=(num-15-0xA1)&0x07F; flag=1; }
else
{
WM=(num-0xA1)&0x07F;
flag=0;
record=QM*94+WM;
pointer=record*72L;
lseek(flag24,pointer,SEEK_SET);
read(flag24,Bit,72);
for(i=0;i<24*m;i=i+m)
for(width=0;width<m;width++)
for(j=0;j<=2;j++)
for(k=0;k<8;k++)
if(convert(Bit,7-k))
for(height=0;height>n)&0x01);
}

希望大家批评指正!
第3楼 alhan 发表于 2004-05-11 00:00
初级用户 发帖 11 积分 125
呵呵。根本不需要那么多头文件。
第4楼 Kinglion 发表于 2004-05-11 00:00
铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室
此文件是我将其它的自编写函数删除后上传的,其它的函数需要用到这些头文件的。我犯懒没有删除而已。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023