为什么我的 C++ 图形程序没有显示任何 g++ 编译器的输出?

Why my C++ Graphics Program is not showing any output with g++ compiler?

我用C++写了一段代码,如下所示。程序编译成功。但是,当我尝试 运行 .exe 文件时,我没有得到所需的输出。

我的代码:

#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<dos.h>

int main( )
{
    int gd = DETECT, gm;
    initgraph(&gd, &gm, (char*)"");
    setcolor(BLUE);
    line(100, 100, 200, 200);
    getch();
    closegraph();
}

我在 Windows 命令提示符中使用以下命令来编译程序:

g++ -m32 -o trial trial.cpp -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 "C:\TDM-GCC-64\x86_64-w64-mingw32\lib\libbgi.a"

到 运行 我的 .exe 文件: trial 对于 cmd 和 ./trial 在 powershell 中。

但在此之后我没有得到任何输出。为什么会这样?

编辑: 在指向您的 libbgi.a 库的路径之前缺少 -L。此处提供更多详细信息:Directory Options


现在几乎没有人使用 graphics.h。正如其他人所指出的,有更好的选择。

但是 Whosebug 上有很多关于使用 WinBGIm 的错误代码 -1073741819 (0xC0000005) 的问题,没有任何答案。因此我想 post 一个在这里。

此错误代码是在分段错误时生成的。可能有很多因素导致它,但对于 WinBGIm,通常是由于库本身的错误。

要使其正常工作,您必须将 graphics.hline 302winbgim.h(从 official source 下载)从

更改为
    int left=0, int right=0, int right=INT_MAX, int bottom=INT_MAX,

    int left=0, int top=0, int right=INT_MAX, int bottom=INT_MAX,

区别应该显得微不足道;之前有一个错字,因为有两个参数名为 right.


Bug-free 库和 headers 可用 here

其实我现在找到了类似的答案。以后的读者可以参考this.