Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在视觉代码2019中使用图形.h绘制线条时,如何修复错误E0167和C2664?_C++_Graphics_Visual Studio 2019_Winbgi - Fatal编程技术网

C++ 在视觉代码2019中使用图形.h绘制线条时,如何修复错误E0167和C2664?

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

当我尝试在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++ 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
的编译器。