ACLLib 的介绍
是一个可以用C语言写出图形界面的程序的函数库。(几位浙大老师编写)基于Win32API的函数库,实际提供了一个.c和两个.h,以GPL的方式开源放在github上。
纯教学用途!!但是其思想、编程模型可以借鉴。可以写一些小游戏啥的玩。
WIN32API
WIN32API从第一个32位的windows开始就出现了。API指的是Application Programming Interface,翻译为“应用程序编程接口。它是个纯C的函数库,让我们可以写windows的应用程序,过去的很多windows程序都是用这个方式做出来的。(现在有更好的编程模型)
首先讲一下main()函数,作为C语言的入口函数,但是其实他和C语言本身无关。(main不是C语言的关键字)其实是启动代码需要main,启动代码可以调用我们写的代码。
对于WIN32来说,我们需要的启动函数是WinMain()

我们现在的疑问是:

产生窗口:窗口结构(一个结构)
在窗口中画东西:DC(设备上下文?)
如何得到用户的键鼠动作:我们需要知道windows的消息是什么,消息循环,消息处理代码
所以这些其实对初学者太难了。
创建ACLLib程序
像文件中提到的,在其他大多数开发环境中实际上都是要先创立项目再放源代码,哪怕只有一个源代码文件。这次我们就不得不这样做。
新项目的类型选择windows application,在另存为中新建一个文件夹(有的环境如Visual Studio会自动建好一个目录,Dev C++没,需要自己手动操作)

会出现这样一个东西,保存。
然后把老师分享的两个文件放进文件夹中,在Dev C++中选择项目-添加,添加这两个文件(可以看到左边一栏项目管理中这时出现了这两个文件)
然后选择项目-项目属性-参数,Linker一列是空的,点击 加入库或者对象,找到安装devc++的目录-mingw目录-lib文件夹-libwinmm.a文件,添加进来。

然后把这8个文件都加进来……
然后把自动生成的 main函数清空,写如下代码
#include "acllib.h"
int Setup()//这里的启动函数
{
initWindow("test",100,100,200,200);//窗口名称为test,在100 100处画一个200 200的窗口
return 0;
}
再运行就能得到该图形界面的窗口。

画图
beginPaint();//开始画图
line(20,20,100,100);//从20 20到100 100画条线
endPaint();//结束画图

如果写上initConsole();(这时头文件要加上#include<stdio.h>) 就可以使用printf()和scanf()函数了。这样可以让用户自定义窗口大小和画线长了。
基本绘图函数
关于开源文件、使用说明,老师都已放在MOOC即此链接中。可以自己去尝试绘制图形、做程序。
ACLLib是一个由浙大老师编写的C语言图形界面库,基于Win32API,简化了窗口和图形绘制。通过引入acllib.h和相关文件,开发者可以在C语言中创建窗口并进行图形绘制,如线条。教程介绍了如何使用DevC++配置项目,并提供了简单的代码示例,如创建窗口、开始绘画和结束绘画。此外,还提及了如何启用控制台输入输出功能。
3970

被折叠的 条评论
为什么被折叠?



