win-tc图形库编程

由于最近接到一个紧急任务,需要实现一个程序,显示一些分形几何中的图形,例如:Koch曲线

感觉java的swing的界面太繁琐,好吧,是我不熟。于是打算用C语言来实现,但是又不想太麻烦,于是想到了win-tc(还是在虚拟机里面直
接装一个xp系统,网上各种win7 64位的版本最后证明都不靠谱),下载win-tc
2.0后直接运行,win-tc自带有很多的模板可以方便的使用,如下图:

直接选择"BGI图形编程模板",自动填充代码框架,如下图:

代码如下:

/* WIN-TC BGI 图形编程模板 */
#include "Conio.h"
#include "graphics.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
  int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
  registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
  initgraph(&gd, &gm, "");
}

int main(void)
{
  initgr(); /* BGI初始化 */

  /*****此部分添加你自己的代码,例如
  line(25, 25, 220, 220);
  circle(100, 100, 50);
  等等*****/
  getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
  closegr(); /* 恢复TEXT屏幕模式 */
  return 0;
}

但是直接运行的话会提示错误:“未定义的符号     '_EGAVGA_driver' 在模块    test2.c”

如果把这一行的代码注释掉,编译通过,运行过控制台一闪而过,代码后面加各种"getch()"……之类的办法都没有用,其实问题出在前面,因为没有找到图形驱动,程序直接退出了,getch 根本没有执行。

在网上找了很久,要么答案不正确,要么太繁琐,折腾了一会找到了解决办法。

找到EGAVGA.BGI文件的目录“C:\Win-TC\BGI”,将上面代码中的initgraph(&gd, &gm, ""); 添加路径即可:

initgraph(&gd, &gm, "C:\\Win-TC\\BGI");

完整代码如下:

/* WIN-TC BGI 图形编程模板 */

#include "Conio.h"
#include "graphics.h"
#define closegr closegraph

void initgr(void) /* BGI初始化 */
{
  int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
  registerbgidriver(EGAVGA_driver); /*注册BGI驱动后可以不需要.BGI文件的支持运行 */
  initgraph(&gd, &gm, "C:\\Win-TC\\BGI");
}

int main(void)
{
  initgr(); /* BGI初始化 */

  /*****此部分添加你自己的代码,例如 */
  line(25, 25, 220, 220);
  circle(100, 100, 50);
  /*等等*****/

  getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
  closegr(); /* 恢复TEXT屏幕模式 */
  return 0;
}

第一次运行需要注册BGI驱动,以后运行不需要“registerbgidriver(EGAVGA_driver);“ 这行代码

配置完编程环境以后,下面的工作就是编程实现啦! O(∩_∩)O哈哈~

时间: 2024-10-29 02:21:16

win-tc图形库编程的相关文章

TC编程手册之一

本文是TC的第一部分,主要介绍一些TC相关的基础知识,并着重针对循环.变量等TC基本概念中的易混的淆部分加以辨析,即是一份编程初学者的指南,也可算作是对<C how to program>的一些补充. 在正式进入编程部分之前,让我们先详细了解一下Turbo C的编译环境,以便在编程时可以更加得心应手. File菜单 Pick--快速读取最近的9个文件.(真的是很方便的功能,特别是在DOS时代 ^-^) Write to--把文件内容换名存盘,支持DOS通配符.(相当于现在的Save as...

C++语言基础-字串操作函数

如果你用过具有string数据类型的编程语言,你可能很不习惯,别人也有同感,所以标准C语言库中提供了几个字串操作函数.表1.3列出了最常用的字串操作函数及其用法说明.关于每个函数的详细说明和实例,见C++ Builder联机帮助. 表1.3字串操作函数 函数 说明 strcat() 将字串接合到目标字串的末尾 strcmp() 比较两个字串是否相等 strcmpi() 比较两个字串是否相等,不考虑大小写 strcpy() 将字串内容复制到目标字串中 strstr() 扫描字串中第一个出现的字串

在线等-关于TC 2.0编成的程序无法在Win 7上打开的问题

问题描述 关于TC 2.0编成的程序无法在Win 7上打开的问题 =_=使用TC 2.0编成的程序无法在Win 7上运行,但学校又要求使用TC找可以使用的TC版本又没有找到,求大神解救!! 解决方案 http://blog.csdn.net/jianxin160/article/details/5651822http://www.ddooo.com/softdown/12851.htmwindows 7 64bit不支持16bit程序,也没有dos子系统(ntvdm),用dosbox就可以了,d

winsock2之最简单的win socket编程

原文:winsock2之最简单的win socket编程   server.cpp #include <WINSOCK2.H> #include <stdio.h> #pragma comment(lib,"ws2_32.lib") int main(int argc,char **argv) { //创建套接字 WORD myVersionRequest; WSADATA wsaData; myVersionRequest=MAKEWORD(1,1); int

冲出UAC-解决Win UAC问题的编程经验

    感想关注 ,转载引用请注明 http://blog.csdn.net/leonwei/article/details/8905703       最近一直在搞页游版的端游移植,里面用到了很多进程启动进程的情况,这种情况在XP以前的系统上是很常见的编程形式,也从来不会出现问题,但是搬到Win7系统上就不行,在很多用户的Win7系统中,进程A去启动进程B(如果直接使用CreateProcess)会创建失败,后来发现这是因为受到了UAC的控制,将解决这类问题的经验总结于此. 1.什么是UAC

Win Socket编程原理及简单实例

[转]http://www.cnblogs.com/tornadomeet/archive/2012/04/11/2442140.html  使用Linux Socket做了小型的分布式,如Linux C Socket编程原理及简单实例. 为了更好地分布也得看看Win Socket. Win Socket TCP原理图: Win Socket UDP原理图:    简单TCP连接实例: 服务器端: 1 #include <WINSOCK2.H> 2 #include <stdio.h&g

Win 95/NT下OpenGL编程原理

----科学计算可视化,计算机动画和虚拟现实是现在计算机图形学的三个热点.而这三个热点的核心都是三维真实感图形的绘制.由于OpenGL(OpenGraphicsLibrary)具有跨平台性.简便.高效.功能完善,目前已经成为了三维图形制作方法中事实上的工业标准.自从WindowsNT3.51在微机平台上支持OpenGL以后,现在微软公司在Windows95OSR2.WindowsNT4.0中连续性的提供OpenGL开发环境.VisualC++从4.2版本以后已经完全支持OpenGL API,使三

c语言游戏编程-关于TC平台下横线优化算法的疑惑~~~TAT大神们帮帮我

问题描述 关于TC平台下横线优化算法的疑惑~~~TAT大神们帮帮我 以下是代码,原作者是想通过以字而不是字节copy数据到显存,从而实现更快地画一条横线,但是我看不太懂他的代码TAT..为什么第一点为奇数,就只填写后一点,最后一点为奇数,就两点都填写?还有就是这里的"填写后一点"里的"一点"是什么意思.啊,好像不是屏幕上的一点啊...困扰我好多天了,希望有人能解救一下我呜呜呜...void HLine_Fast(int x1int x2int yunsigned i

从windows到linux -- 编程篇 -- cygwin,在win中开发linux程序(ZT)

很多用windows的朋友不习惯于用linux的开发环境.虽然很乐意尝试一下,但是往往怕linux系统打乱了自己的正常生活:1〉装linux系统把windows系统给搞坏了,导致自己无法正常生活:2>linux开发上手太难,写出第一个helloworld不亚于java的难度,环境配置摸不着头脑.对于此,我的看法是:路不管平还是陡,终归你要走的,如果你愿意投入到linux开发的社群中来,不会安装linux系统,不会配置工作环境是不能想象的.(事实上,确实要了解很多东西的原理,不然很难排错:诸如,硬