谈谈TC256图形函数库的使用方法
来源:互联网 发布:python读取word文档 编辑:程序博客网 时间:2024/05/01 09:43
Turbo C 2.0是Borland公司开发的一个16位DOS的C编译器。现在Turbo C已经是老古董了,用的人也很少了。但是研究DOS和Turbo C的人还是有。VGA/VESA的256色的编程一直是研究DOS和TC编程的人关注的焦点,本文所讲的TC256图形函数库是吴进写的一个支持SVGA256色视频模式的图形函数库。许多初学者都不懂其使用方法,本文就在这里简单讲讲。
在看厌了TC编的命令行程序后,愈发觉得不爽,于是急切的想做一点TC的图形编程。TC自带的graphics库是一个不错的选择,但也有缺憾,只能支持到VGAHI图形模式,即640*480*16色,对图像的表现力真的太差。
还好在网上找到了一套功能较为完善的TC256图形函数库,它支持SVGA的640*480*256色的视频模式,支持汉字的输出、鼠标功能、256色位图输出、EMS内存管理、基本绘图函数、图像特效(动画、Alpha混合)等全面而强大的功能。本文不打算详细探讨该库的每一个函数的使用,而只具体讲讲该函数库的使用、编译方法和编程及编译时常遇到的问题。
使用方法。安装很简单,所有的函数都以源代码形式放在include目录下的.h文件中,只要将所有.h文件复制到您的TC的include目录下即可。一般这一步都没问题。
在编程时,需#include<all256.h>,将包含所有的TC256函数库功能。
通常使用该函数库的程序都采用以下框架:
#include<all256.h>
int main(void)
{
init256(SINGLE_SURFACE);
vpost();
close256();
return 0;
}
我们可以将所有的图形操作和您的程序代码插入到init256();与close256();两句之间,这也是属于成对编码的规范(关于成对编码请参看本站的《成对编码规范》一文)。
关于编译问题。由于TC256库使用了EMS内存,而且要求使用Compact以上的内存模式进行编译,所以要在TC的Options->Compile->Model中改内存模式,一般改为Huge即可。改完后还别忘记保存(Options->Save Options)。保存后即可进行编译,一般编译通过后即可运行。但是在Windows操作系统下可能会出现没有安装EMS内存驱动而无法运行的问题(双击后,一般症状是程序运行一闪而过)。在WinXP下的解决方法是右键单击您编译生成的程序,选“属性”项,在弹出对话框中选“内存”选项卡,将EMS内存设为最大(默认为无,选择下拉列表中最下面一个即可),设置完后点击确定,此时会在同一目录下生成一个指向该程序的MS-DOS快捷方式,千万不要觉得它不顺眼而把它删掉了,你的程序的正常运行全靠它了。此刻再双击你的程序,即可正常运行了。在Windows2000下好像不行,尽管可以像上面一样的进行设置,可是设置以后的程序就是无法运行,听说可以装一个什么软件的,不过到现在本人还是没搞定Win2000的问题,以后再研究吧。在Win95/98下,程序应该都能够正常运行的。
在编写程序时常会犯的错误。用过TC256库的人都应该知道puts256()这个函数,它就是在屏幕上输出一个中文字符串,看一下代码:
#include<all256.h>
int main(void)
{
init256(SINGLE_SURFACE);
puts256(10,10,"你好TC256!",YELLOW);
getch();
close256();
}
以上程序是编译能通过,可运行,可是却没有我们想要的效果,刚开始本人研究TC256库的时候就犯了这样的错误,明明用了puts256()这个函数,可是屏幕上就是没有字显示出来。就在我打算放弃的时候,才偶然在演示程序中发现了vpost()这个神秘的函数。在init256()时,我们传了SINGLE_SURFACE这个常量,就是将TC256系统初始化为单页面模式,相当于常说的双缓冲。我们所有的操作结果是不会立即反映到屏幕上的。刚才的puts256()的操作结果只是存放在了一个由TC256系统维护的缓冲区中,而vpost()的作用及时将缓冲区中的内容送入到显存里去,在vpost()之后,我们就能看到操作结果了。而使用缓冲和vpost()的意义在于提高TC256的图形性能和消除绘制图形时的闪烁。因此,正确的代码应该如下:
#include<all256.h>
int main()
{
init256(SINGLE_SURFACE);
puts256(10,10,"我好激动,我终于会用TC256函数库了!",YELLOW);
vpost();
getch();
close256();
}
另外,可能犯的错误是,汉字的输出要用到两个点阵字库,分别是hzk16和hzk24,如果你的程序找不到这两个文件,汉字的输出也会失败,通常在发布您的程序时,只要将你的程序和两个hzk文件放在同一目录下即可。
(未完待续)
- 谈谈TC256图形函数库的使用方法
- 谈谈TC256图形函数库的使用方法
- PHP 图形处理函数库
- 图形函数库curses
- UNIX下C语言的图形编程-curses.h函数库
- easyX图形函数库开发的俄罗斯方块游戏(C版本)
- zlog 纯C的日志函数库的简单使用方法
- 谈谈C++学习之Pair的使用方法
- C语言静态函数库的制作和使用方法
- C语言静态函数库的制作和使用方法
- 【转】C语言静态函数库的制作和使用方法
- 谈谈Ext JS的组件——布局的使用方法
- 谈谈互斥锁和条件变量的几种使用方法
- 在qtp里写函数库遇到的问题以及函数的调用时具体的使用方法
- Linux下图形函数库---curses.h
- Linux下图形函数库2---curses.h
- curses库(LINUX/UNIX图形函数库)
- matplotlib函数库使用contour绘制等高线图形
- 小资音乐 - 巴萨诺瓦(Bossa Nova)
- 中产阶级音乐 - 新世纪音乐(New Age)
- XML文檔的讀取
- 图形程序运行的条件
- 还是"搬家"吧!
- 谈谈TC256图形函数库的使用方法
- 256色调色板与Alpha混合
- Url重写之action改变的问题
- 中国历史上的十大定律
- 看到某人的签名,觉得挺好玩,留个备份在自己的blog上。
- data abort
- 嵌入式人才的发展方向
- 关于SQL数据删除
- 作为一个软件工程师的经验