SimpleCG库安装使用

news/2025/3/14 2:06:43/

        SimpleCG库是一个简单的Windows图形库,对GDI及窗口和消息机制进行了简单封装,从而达到类似Turbo C图形库的调用方法,目的是为了初学C语言的同学能快速上手图形界面编程。使用对象包括所有初学C语言的同学,尤其是中学生,可以在简单的图形编程中发现其中的乐趣,并不断提高编程的兴趣。在本专栏中主要通过一个个示例程序来进行各类函数的讲解及功能说明。

        本篇主要对库的安装和使用进行说明。

        下载地址b2b160 / SimpleCG_Demo · GitCode

        SimpleCG库采用静态库方式发布,所以说不上安装,只要按照一般静态库的使用方法即可。

        随库发布包括系列函数声明的头文件(即.h文件)及函数定义的库文件(即.lib文件)。头文件当前主要包括在import/include/里的SimpleCG.h、shape.h、Option.h、CGBoard.h,以及import/lib/里的5个lib文件,都是在vc2010中编译。

SimpleCG.lib        //默认,与SimpleCG_MD.lib一样,多线程DLL编译 (/MD)

SimpleCG_MDd.lib    //运行库使用多线程DLL编译调试 (/MDd) Debug版本
SimpleCG_MD.lib        //运行库使用多线程DLL编译 (/MD) Release版本

SimpleCG_MTd.lib    //运行库使用多线程静态编译调试 (/MTd) Debug版本
SimpleCG_MT.lib        //运行库使用多线程静态编译 (/MT) Release版本

        随库还有一个绘画佩奇的DEMO,可以直接在VC2010中打开工程文件进行编译运行。其他版本没有测试,可以尝试打开,看是否有问题并给我反馈,将不胜感激。

使用方法:可以采用多种方式使用本库,在此先介绍一种作为展示板使用,所谓展示板,就是不需要和图像窗口有交互,单纯作为显示图形使用,例如展示绘图、展示图片动画等,是最简单的使用方式。

1、按照一般工程创建方法创建一个控制台程序(创建win32窗口方式类似)。

2、在需要使用到库的.c文件中包含头文件CGBoard.h。

#include "../import/include/CGBoard.h"

这里要注意路径的正确性。

3、在工程中附加库文件,这里可以采用a、b两种方式

        a、在工程项目右键属性里设置

        

         b、在.c文件里使用代码引入库


#pragma comment(lib, "../import/lib/SimpleCG_MDd.lib")

只要任选一种就可以了。

4、在代码中添加初始化代码

//1、定义一个绘图函数,无返回值,无参数
void DrawProcess()
{//绘制一条(0,0)到(100,100)的线条line( 0, 0, 100, 100 );
}//2、调用显示窗口函数
int _tmain(int argc, _TCHAR* argv[])
{if( !ShowingBoard(600, 700, DrawProcess))  //显示一个600x700的窗口,并在其中运行绘图函数return 1;CloseBoard(); //关闭窗口及图形库return 0;
}

到这里可以运行看看,已经使用库绘制了一条线条了。

下一篇将介绍更复杂的绘制方法,从而看看DEMO中一个佩奇是怎么绘制出来的。


http://www.ppmy.cn/news/57130.html

相关文章

MySQL数据库,JDBC连接数据库操作流程详细介绍

前言: 在学完 MySQL 和 Java 后,我们通常会尝试使用 Java编译器 连接 MySQL数据库,从而达到使用编译器来操作数据库的效果。连接的这个过程会用 JDBC 相关知识,因此我把 JDBC 包的下载及导入流程,以及 JDBC 的使用流程…

pt13网络编程

网络编程 OSI 7层模型 建立了统一的通信标准 降低开发难度,每层功能明确,各司其职 七层模型实际规定了每一层的任务,该完成什么事情 TCP/IP模型 七层模型过于理想,结构细节太复杂在工程中应用实践难度大实际工作中以TCP/IP模型…

Java 基础入门篇(二)—— Java 基础语法

文章目录 一、注释二、字面量三、变量3.1 变量概述3.2 变量在计算机中的底层原理 四、数据类型五、关键字、标志符六、类型转换6.1 自动类型转换6.2 表达式的自动类型转换6.3 强制类型转换 七、运算符7.1 基本算数运算符7.2 符号做连接符7.3 自增自减运算符7.4 赋值运算符7.5 …

3_docker应用部署:MySQL-Tomcat-Nginx-Redis

Docker 应用部署入门 一、部署MySQL 案例需求:在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server。 分析: 容器内的网络服务和外部机器不能直接通信 外部机器和宿主机可以直接通信 宿主机和容器可以直接通信 当容器中的网…

【华为校招真题】分配资源ID 100% C++

【华为校招真题】分配资源ID 100% C++ 前言 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能最优),不能保证通过率。 Tips1:机试为ACM 模式 你的代码需要处理输入输出,input/cin接收输入、print/…

dc-6靶机

1.使用nmap进行信息搜集,存活主机,端口 192.168.85.184是存活主机,发现开放22,80端口 2.访问192.168.85.184的80端口 发现被重定向了,修改hosts文件 vim /etc/hosts 添加一行 192.168.85.174 wordy3.对网站进行信息搜…

Golang中sync.Pool详解及使用方法

什么是sync.Pool? sync.Pool是用来保存可以被重复使用的临时对象,以便在以后的同类操作中可以重复使用,从而避免了反复创建和销毁临时对象带来的消耗以及对GC造成的压力。常用池化技术来提高程序的性能,例如连接池、线程池等。sy…

C/C++文件操作/IO流

学习任务: ⭐认识文件。⭐学习C语言中文件如何打开和关闭。⭐学习C语言中文件的读写方法(包括顺序读写和随机读写)。⭐学习C语言文件操作中如何判断文件读取结束。⭐简单了解FILE缓冲区。⭐认识流。⭐学习C的IO流,包括标准IO流和文…