起因
某23学弟要用C语言画点东西,刚好想起自己刚学C语言的时候遇到过同样的问题,所以,花点时间尝试了一下。
库文件下载
下载后是这个样子
其中include是库文件,lib32/lib64是头文件,我们需要做的就是把这两个文件夹下的文件移动到MInGW相应的目录。至于是32还是64取决于你的MinGW是32还是64。
运行
之后我们创建一个C++文件,运行选择G++,很快它就报错了
别急!
我们打开tasks.json
还记得我们刚才移动的头文件和库文件吗,这个时候头文件已经可以识别到了
我们需要在编译/运行时加入一个指令,链接刚才移动的库文件。
这里面的args其实就是vscode运行时帮助我们敲到终端的命令,加入这个命令告诉编译器我们需要easyx这个库就行了。
示例代码(来自easyx官网)
// 编译环境:Visual C++ 6.0~2022,EasyX_2023大暑版
// https://easyx.cn
//
#include <graphics.h>
#include <time.h>
#include <conio.h>
#define MAXSTAR 200 // 星星总数
struct STAR
{
double x;
int y;
double step;
int color;
};
STAR star[MAXSTAR];
// 初始化星星
void InitStar(int i)
{
star[i].x = 0;
star[i].y = rand() % 480;
star[i].step = (rand() % 5000) / 1000.0 + 1;
star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5); // 速度越快,颜色越亮
star[i].color = RGB(star[i].color, star[i].color, star[i].color);
}
// 移动星星
void MoveStar(int i)
{
// 擦掉原来的星星
putpixel((int)star[i].x, star[i].y, 0);
// 计算新位置
star[i].x += star[i].step;
if (star[i].x > 640) InitStar(i);
// 画新星星
putpixel((int)star[i].x, star[i].y, star[i].color);
}
// 主函数
int main()
{
srand((unsigned)time(NULL)); // 随机种子
initgraph(640, 480); // 创建绘图窗口
// 初始化所有星星
for(int i = 0; i < MAXSTAR; i++)
{
InitStar(i);
star[i].x = rand() % 640;
}
// 绘制星空,按任意键退出
while(!_kbhit())
{
for(int i = 0; i < MAXSTAR; i++)
MoveStar(i);
Sleep(20);
}
closegraph(); // 关闭绘图窗口
return 0;
}