SimpleCG库安装使用

news2024/11/25 6:14:41

        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.coloradmin.cn/o/473249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PAT B1049

PAT B1049 题目 给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0…

【】lambda表达式

文章目录 lambda表达式lambda概念lambda表达式的格式关于捕获列表常见问题: 使用lambda表达式交换两个数lambda表达式底层原理 lambda表达式 lambda概念 lambda表达式本质是一个匿名函数(因为它没有名字),恰当使用lambda表达式可以让代码变得简洁.并且可以提高代码的可读性 例…

字节后端入门 - Go 语言原理与实践

1.1什么是Go语言 1.2Go语言入门 环境 1.3基础语法 1.3.1变量 var name"value" 自己推断变量类型; 也可以显式类型 var c int 1 name: type(value) 常量: const name "value" g : a"foo" 字符串拼接 1.3.2 if else {}花括号…

Java——多线程和锁

多线程 前言:当我们打开一个网站时,不同部分的加载并不是先后出现的,是并行出现的,没有出现一个地方没加载完,别的地方就也加载不出来这种事。这个就是多线程并行运行。 当其中一个线程发生阻塞时,操作系统会自动执行…

系统集成项目管理工程师 笔记(第12章:项目沟通管理和干系人管理)

文章目录 12.1.2 沟通的方式 404沟通管理计划的编制过程12.2.2 制订沟通管理计划的工具 4114、沟通方法 12.3.2 管理沟通的工具 41312.4.2 控制沟通的技术和方法 4163、会议 12.5.1 项目干系人管理所涉及的过程 420项目干系人管理的具体内容:(1&#xff…

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

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

【CMake】给一个库添加用法需求(Usage Requirements)

3. 给一个库添加用法需求(Usage Requirements) 1. usage requirements 目标参数的用法要求(不知道有没有更好的翻译方式)可以更好地控制库或可执行的链接,并包括行,同时还可以更好地控制CMAKE内部目标的传…

【哈士奇赠书活动 - 17期】-〖uni-app跨平台开发与应用从入门到实践〗

文章目录 ❤️‍🔥 赠书活动 - 《uni-app跨平台开发与应用从入门到实践》❤️‍🔥 编辑推荐❤️‍🔥 抽奖方式与截止时间❤️‍🔥 赠书活动 → 获奖名单 ❤️‍🔥 赠书活动 - 《uni-app跨平台开发与应用从入门到实践》…

日志技术-Logback

一. 日志是什么: 输出语句的弊端:它只能在控制台展示,它不能记录在本地文件当中。 日志可以将程序运行过程中的信息直接记录在文件里面,做永久存储。 性能较好,简单来说就是运行的速度会比较快。 二. 日志技术体系、L…

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

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

iOS 17 开放侧载,微信双开要来了?

关于苹果北京时间 6 月 6 日召开的 WWDC23 全球开发者大会,外媒彭博记者 Mark Gurman 带来了最新消息。 大致更新概览 他认为,本次 WWDC23 大会将会主要推出这几款产品和软件:iOS 17、iPadOS 17、macOS 14、watchOS 10、新的 MacBooks 、混…

文件上传下载系列——如何实现文件秒传

文章目录 🎃简介: 👻核心思想: MD5是什么? 实现步骤: 🎄实操: 1、java生成文件MD5码 2、javascript生成文件MD5码 ⛳️基于秒传的分片上传下载 上传: 下载&…

Afkayas.1(★)

软件运行 要输入正确的Name和Serial 查壳 一个VB程序,没有加壳 载入OD 直接开搜索字符串。 这里看到了错误的提示,“You Get It”应该就是成功的字符串了。 前面的“AKA-”应该是在什么时候拼接的字符串 去成功的字符串附近看看 这个字符串上面…

LVS负载均衡群集——DR模式

一、LVS-DR集群介绍 LVS-DR(Linux Virtual Server Director Server)工作模式,是生产环境中最常用的一 种工作模式。 1、LVS-DR 工作原理 LVS-DR 模式,Director Server 作为群集的访问入口,不作为网关使用&#xff0…

第九章 子查询

文章目录 前言一、.需求分析与问题解决1 、实际问题2 、子查询的基本使用3 、子查询的分类 二、单行子查询1、单行比较操作符2、代码示例3、 HAVING 中的子查询4、CASE中的子查询5、 子查询中的空值问题6、非法使用子查询 三、多行子查询1、 多行比较操作符2、代码示例3 、空值…

客快物流大数据项目(一百一十八):配置中心 Spring Cloud Config

文章目录 配置中心 Spring Cloud Config 一、​​​​​​​Config 简介

STM32-HAL-SPI-W25Q128FV简单读写测试(2)

文章目录 一、Flash的基本读写操作1.1 向芯片中的某个地址(addr:0x02)连续写入不定长的数据并读取代码示例读写流程分析函数分析 1.2 向芯片中的某个地址(addr:0x00)写入一个数值代码示例:读写流程分析 具体的配置接上…

react native ios 添加启动页 xcode14

最近更新xcode,有些配置有些不同,网上查的方法都是过时的,导致配了一段时间卡在这里,最后访问官网才弄好了,所以以后解决问题的办法先看官网再查其他各路神仙的办法。 官网的步骤:https://github.com/crazy…

MAC 查看已装载的卷宗

查看卷宗目录命令 ls /Volumes网络卷宗:本机、系统报告。 参考资料:https://blog.csdn.net/qq_41731201/article/details/125407204

建筑行业如何进行高效管理文件?

建筑设计行业在日常办公中会产出大量文件,如设计图纸协作商议,项目资料等,建筑行业该如何高效管理文件呢? 建筑设计行业团队可能遇到的文件管理问题: 1,设计图纸一般较大,来回传输不仅麻烦&…