我也不知道哈,但可以用VC++来编C,可以显示中文
网上找来的!不过Hzk16.dat你要另外去找
#include <graphics.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <stdlib.h>
#include <conio.h>
#define row 1 //纵坐标放大倍数
#define col 2 //横坐标放大倍数
void main()
{
int x,y;
char *s="汉字显示程序";
FILE *fp;
char buffer[32]; //buffer用来存储一个汉字
register m,n,i,j,k;
unsigned char qh,wh;
unsigned long offset;
int gd=DETECT,gm; //图形屏幕初始化
initgraph(&gd,&gm,"");
if ((fp=fopen("hzk16.dat","rb"))==NULL)
//打开汉字库,该字库可以在ucdos中找到
{ printf("can't open haz16,please add it");
getch(); closegraph(); exit(0);
}
x=20; y=100; //显示位置设置
while(*s)
{ qh=*(s)-0xa0; //汉字区位码
wh=*(s+1)-0xa0;
offset=(94*(qh-1)+(wh-1))*32l; //计算该汉字在字库中偏移量
fseek(fp,offset,SEEK_SET);
fread(buffer,32,1,fp); //取出汉字32字节的点阵字模存入buffer中(一个汉字)
for (i=0;i<16;i++) //将32位字节的点阵按位在屏幕上打印出来(1:打印,0:不打印), 显示汉字
for(n=0;n<row;n++)
for(j=0;j<2;j++)
for(k=0;k<8;k++)
for(m=0;m<col;m++)
if (((buffer[i*2+j]>>(7-k))&0x1)!=NULL)
putpixel(x+8*j*col+k*col+m,y+i*row+n,GREEN);
s+=2; //因为一个汉字内码占用两个字节,所以s必须加2
x+=30;
}
getch();
closegraph();
}