![](/img/trans.png)
[英]Why do Visual C++ and g++ give different output for my program?
[英]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 文件:在 powershell 中trial
cmd 和./trial
。
但在此之后我沒有得到任何輸出。 為什么會這樣?
編輯:在指向libbgi.a
庫的路徑之前缺少-L
。 此處提供更多詳細信息:目錄選項
現在幾乎沒有人使用graphics.h
。 正如其他人指出的那樣,有更好的選擇。
但是在 StackOverflow 上有很多關於使用WinBGIm
錯誤代碼-1073741819 (0xC0000005)
問題,沒有任何答案。 因此我想在這里發布一個。
此錯誤代碼是在分段錯誤時生成的。 可能有很多因素導致它,但是對於WinBGIm
,它通常是由於庫本身的錯誤造成的。
要使其工作,您必須將graphics.h
和winbgim.h
(從官方來源下載)的line 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
。
無錯誤庫和頭文件可在此處獲得。
其實我現在找到了類似的答案。 以后的讀者可以參考這個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.