为什么我的C++;图形程序未显示任何带有g++;编译程序? 我已经写了C++代码,下面给出了。程序正在成功编译。但是,当我试图运行.exe文件时,我没有得到所需的输出
我的代码:为什么我的C++;图形程序未显示任何带有g++;编译程序? 我已经写了C++代码,下面给出了。程序正在成功编译。但是,当我试图运行.exe文件时,我没有得到所需的输出,c++,g++,bgi,winbgi,C++,G++,Bgi,Winbgi,我的代码: #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);
#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();
}
要运行我的.exe文件,请执行以下操作:
用于cmd的试用版
,以及powershell中的试用版
但在这之后,我没有得到任何输出。为什么会这样
编辑:在指向
libbgi.a
库的路径之前缺少-L
。有关详情,请参阅:
现在几乎没有人使用
graphics.h
。正如其他人所指出的,还有更好的选择
但是关于StackOverflow,有很多问题都是关于使用WinBGIm
时的错误代码-1073741819(0xC0000005)
,没有任何答案。因此,我想在这里发布一个
此错误代码是在分段错误时生成的。可能有很多因素导致它,但是对于WinBGIm
,它通常是由于库本身的错误造成的
要使其工作,您必须更改graphics.h
和winbgim.h
(从下载)的第302行
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的库和头是可用的
事实上,我现在也找到了类似的答案。未来的读者可能会参考。start/wait-trial.exe
echo%errorlevel%
运行此命令会产生什么输出?它不是零吗?尝试添加-lgraph
链接器指令。另外,不需要编写(char*)”
,只需将其替换为NULL
也应该这样做。我认为根本问题在于使用过时的图形库。虽然现代库的设置通常更复杂(但不是很多),但它们也更强大、更灵活,而且(最重要的是)更现代、更符合现代环境的要求。@brc dd我曾尝试将-lgraph
添加到链接器指令中,但是,此错误正在发生C:/TDM-GCC-64/bin/./lib/GCC/x86_64-w64-mingw32/5.1.0/../../../../../../x86_64-w64-mingw32/bin/ld.exe:找不到-lgraph collect2.exe:错误:ld返回了1个退出状态
@brc dd我也尝试了命令start/wait trial.exe
,echo%errorlevel%
,但没有输出。对于第一个命令,只有一个空白端子同时出现,然后消失。对于第二个命令,它返回1073741819,这是非零。您是否考虑过使用跨平台的图形库,如,或?别忘了启用所有警告和调试信息,所以用g++-Wall-Wextra-g
编译我已经纠正了这个错误,在纠正这个错误之后,我只在这里发布了这个问题。所以我不认为这个错误是由于输入错误造成的,而且这段代码在代码块17.12中运行良好,因为我的一个朋友已经在IDE中成功地运行了这段代码。但我的目标是在没有IDE的情况下运行。我可以提供IDE在编译和运行期间生成的命令,正如我朋友提供的那样。@KalpadiptyaRoy您可以尝试使用此驱动器链接中的内容重新安装winbgim吗:确保您也复制库文件。@KalpadiptyaRoy指向libbgi.a
的路径之前不应该有-L
?是的-L
是实际问题。我已经在libbgi.a
路径之前添加了它,现在我的代码正在运行,我正在获得输出。非常感谢你。请编辑您的建议答案并进行相应修改。在那之后,我将打勾标记为正确。
g++ -m32 -o trial trial.cpp -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 "C:\TDM-GCC-64\x86_64-w64-mingw32\lib\libbgi.a"