C++ 在视觉代码2019中使用图形.h绘制线条时,如何修复错误E0167和C2664?
当我尝试在VisualStudio2019中使用graphics.h绘制线条时,我经常遇到两种类型的错误 这是一个例子,我正试图从geeksforgeks.org开始使用我的编译器 错误 E0167-类型为“const char*”的参数与类型为“char*”的lies 2参数不兼容-第17行 及 C2664-“void initgraph(int*,int*,char*)”;无法将参数3从'const char[1]转换为'char*'-第17行 我的代码:C++ 在视觉代码2019中使用图形.h绘制线条时,如何修复错误E0167和C2664?,c++,graphics,visual-studio-2019,winbgi,C++,Graphics,Visual Studio 2019,Winbgi,当我尝试在VisualStudio2019中使用graphics.h绘制线条时,我经常遇到两种类型的错误 这是一个例子,我正试图从geeksforgeks.org开始使用我的编译器 错误 E0167-类型为“const char*”的参数与类型为“char*”的lies 2参数不兼容-第17行 及 C2664-“void initgraph(int*,int*,char*)”;无法将参数3从'const char[1]转换为'char*'-第17行 我的代码: '''// C++ Impleme
'''// C++ Implementation for drawing line
#include <graphics.h>
// driver code
int main()
{
// gm is Graphics mode which is a computer display
// mode that generates image using pixels.
// DETECT is a macro defined in "graphics.h" header file
int gd = DETECT, gm;
// initgraph initializes the graphics system
// by loading a graphics driver from disk
initgraph(&gd, &gm, "");
// line for x1, y1, x2, y2
line(150, 150, 450, 150);
// line for x1, y1, x2, y2
line(150, 200, 450, 200);
// line for x1, y1, x2, y2
line(150, 250, 450, 250);
getch();
// closegraph function closes the graphics
// mode and deallocates all memory allocated
// by graphics system .
closegraph();
}'''
绘制线的代码>、'/C++实现
#包括
//驱动程序代码
int main()
{
//gm是图形模式,是一种计算机显示器
//使用像素生成图像的模式。
//DETECT是在“graphics.h”头文件中定义的宏
int gd=检测,gm;
//initgraph初始化图形系统
//通过从磁盘加载图形驱动程序
initgraph(&gd,&gm,“”);
//x1、y1、x2、y2的线路
线路(150、150、450、150);
//x1、y1、x2、y2的线路
线路(150200450200);
//x1、y1、x2、y2的线路
线路(150250450250);
getch();
//closegraph函数关闭图形
//模式并取消分配所有分配的内存
//通过图形系统。
closegraph();
}'''
什么是图形?h?@ ThomasSablik图形。h是一个头,用于在20年前与Turbo C++进行交互。它为基于DOS的计算机的VGA显示器(以及EGA和CGA)实现了图形绘制例程。它已经过时几十年了,今天没有人使用它。它不是标准C++。您的MSVC++编译器不是在<代码> const char */COD>和<代码> char */COD>之间自动转换,这是一个讨厌的事情(GCC是相同的)问题是“代码>”“代码/ <代码> > iTrige< /Cord>您必须做出某种<代码> CAST 或者使用变量来代替代码> char txt[]=“”;initgraph(&gd,&gm,txt)代码> @ DRESCHJM,我不认为他使用旧的Turbo C++编译器,标签是暗示MSVC++的,而且在Borland风格编译器(旧的和新的)中,这个编译不会有问题…此外,IIRC较旧的GCC和MSVC++编译器在过去也接受了这种强制转换,他们在某个时候对其进行了更改……它应该已经为
c++11
支持进行了更新。因此,他/她需要更改代码或使用能够关闭c++11
的编译器。