关于无法使用easyx “VS无法打开头文件<graphics.h>” 以及编译时 “没有与参数列表匹配的重载函数实例”俩个问题的解决思路

前言: 今天无聊没什么事干,突然看见一条视频梦回20年前杀马特横行的年代,炫酷而又土嗨的灯光闪烁,我又想了想之前写扫雷小游戏的时候,有的人写的游戏界面非常的炫酷,各种颜色都有,抱着没事没事干试一下的态度,我打开了 VS2022 想着试一下怎么做一个炫酷的灯光闪烁的效果,结果刚写完第一行代码就报错了,他提示我无法打开源文件 “graphics.h”,但是其他的源文件比如 stdio.h, string.h 都可以。


目录

一.无法打开头文件

错误情况        

 解决方法

二.编译时没有与参数列表匹配的重载函数实例 

错误情况

错误原因

解决方法

完整代码

运行效果 


一.无法打开头文件 <graphics.h>

错误情况        

        首先先打开自己电脑上的VS编译器的目录,如果你和下图和笔者情况一样的话,那就好解决了,这里缺失了俩个文件缺失 easyx.h graphics.h 这两个源文件

 解决方法

我们打开下面的这个网站,根据自己的版本进行下载就行了

EasyX 2023大暑版 (2023-7-23 更新) - EasyX

 下载完成后,根据指引下载,然后我们打开刚才的 include 文件夹查看

 我们就发现缺失的俩个文件都下载好了,这个时候再打开 VS编译器 就不会报错了

二.编译时提示没有与参数列表匹配的重载函数实例 

错误情况

大概就是下面这个情况

错误原因

        这里的错误原因是因为字符串的实际存储有多种编码格式,如果默认的编码格式和实际执行的平台不相符就会发生错误

解决方法

以 VS2022 为例,点击项目>高级>字符集,然后更改为使用多字节字符集

 然后代码就可以无障碍运行了


完整代码

#include<graphics.h>
#include<stdio.h>
#include<time.h>

int main()
{
	initgraph(640, 480);
	char str[] = { "I can do this all day" };
	srand((unsigned int)time(NULL));
	int x = 10;
	while (1)
	{
		settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
		settextstyle(x, 0, "楷体");
		outtextxy(10, 10, str);
		Sleep(200);
		x++;
	}

	system("pause");
	closegraph();

	return 0;
}

运行效果 

        整个句子越来越大,越来越大,并且不断的变换颜色,非常的炫酷,有兴趣的小伙伴们可以去试一试




  本次的分享就到此为止了,希望我的分享能给您带来帮助,也欢迎大家三连支持,你们的点赞就是博主更新最大的动力!如有不同意见,欢迎评论区积极讨论交流,让我们一起学习进步!有相关问题也可以私信博主,评论区和私信都会认真查看的,我们下次再见

  • 29
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论
setinitmode函数EasyX图形库中的函数,用于设置图形模式初始化的显示方式。在使用setinitmode函数之前,确保已经正确引入EasyX图形库的头文件,并且在程序中正确使用initgraph函数进行图形环境的初始化。 首先,你需要确保已经正确引入了EasyX图形库的头文件。在使用EasyX图形库,你需要包含以下头文件之一: ```cpp #include <graphics.h> // 原始的BGI图形库头文件 #include <easyx.h> // EasyX图形库头文件 ``` 如果你使用的是原始的BGI图形库头文件,则需要确保已经正确安装了Borland Graphics Interface(BGI)图形库,并将其相关文件配置到编译环境中。 然后,在程序中使用initgraph函数进行图形环境的初始化。initgraph函数的原型如下: ```cpp int initgraph(int* graphdriver, int* graphmode, const char* pathtodriver); ``` 其中,graphdriver和graphmode是指向整型变量的指针,用于指定图形驱动和图形模式。如果你想要设置初始化模式,可以在调用initgraph函数之前,修改对应的graphdriver和graphmode的值。 最后,你可以使用setinitmode函数来设置初始化模式。setinitmode函数的原型如下: ```cpp void setinitmode(int mode); ``` 其中,mode表示初始化模式,可以取以下值: - INIT_DEFAULT:默认初始化模式 - INIT_DISABLE_CLOSE:禁止关闭窗口 - INIT_NOBORDER:无边框模式 - INIT_FULLSCREEN:全屏模式 你可以在调用initgraph函数之后,使用setinitmode函数来设置初始化模式。例如: ```cpp #include <easyx.h> int main() { initgraph(); // 初始化图形环境 setinitmode(INIT_NOBORDER); // 设置无边框模式 // 其他绘图和逻辑代码... closegraph(); // 关闭图形环境 return 0; } ``` 注意:setinitmode函数必须在调用initgraph函数之后使用,否则会无效。另外,部分初始化模式可能需要管理员权限才能正常运行。如果你的程序在使用setinitmode函数遇到问题,可以尝试以管理员身份运行程序。 希望以上信息能对你有所帮助!如果还有其他问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luming.02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值