C++ 在我的GUI表单后面有一个恼人的空白控制台
我使用GCC(g++)编译器编译这个小程序。结果可执行文件很好,但当我运行它时,它会出现一个恼人的空白控制台窗口!:(C++ 在我的GUI表单后面有一个恼人的空白控制台,c++,windows,gcc,console,g++,C++,Windows,Gcc,Console,G++,我使用GCC(g++)编译器编译这个小程序。结果可执行文件很好,但当我运行它时,它会出现一个恼人的空白控制台窗口!:( #包括 LRESULT回调WndProc(HWND、UINT、WPARAM、LPARAM); 静态字符gszClassName[]=“暗蓝色”; 静态实例=NULL; int WINAPI WinMain(HINSTANCE HINSTANCE、HINSTANCE HPPreInstance、LPSTR lpCmdLine、int nCmdShow){ WndClass x W
#包括
LRESULT回调WndProc(HWND、UINT、WPARAM、LPARAM);
静态字符gszClassName[]=“暗蓝色”;
静态实例=NULL;
int WINAPI WinMain(HINSTANCE HINSTANCE、HINSTANCE HPPreInstance、LPSTR lpCmdLine、int nCmdShow){
WndClass x WndClass;
HWND-HWND;
味精;
ghInstance=hInstance;
WndClass.cbSize=sizeof(WNDCLASSEX);
WndClass.style=NULL;
WndClass.lpfnWndProc=WndProc;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hInstance=ghInstance;
WndClass.hIcon=LoadIcon(空,IDI_应用程序);
WndClass.hCursor=LoadCursor(空,IDC_箭头);
WndClass.hbrBackground=(HBRUSH)(颜色窗口+1);
WndClass.lpszMenuName=NULL;
WndClass.lpszClassName=gszClassName;
WndClass.hIconSm=LoadIcon(空,IDI_应用程序);
如果(!RegisterClass(&WndClass)){
消息框(0,“窗口注册失败!”,“错误!”,MB_ICONSTOP|MB_OK);
返回0;
}
hwnd=CreateWindowEx(
WS_EX_STATICEDGE,
gszClassName,
“暗蓝色owNz!”,
WS_重叠窗口,
CW_USEDEFAULT,CW_USEDEFAULT,
320, 240,
空,空,,
例如,,
无效);
if(hwnd==NULL){
消息框(0,“窗口创建失败!”,“错误!”,MB|U ICONSTOP|MB|U OK);
返回0;
}
显示窗口(hwnd、nCmdShow);
更新窗口(hwnd);
while(GetMessage(&Msg,NULL,0,0)){
翻译信息(&Msg);
发送消息(&Msg);
}
返回Msg.wParam;
}
LRESULT回调WndProc(HWND HWND,UINT消息,WPARAM WPARAM,LPARAM LPARAM){
开关(信息){
案例WM_结束:
窗口(hwnd);
打破
案例WM_销毁:
PostQuitMessage(0);
打破
违约:
返回DefWindowProc(hwnd、Message、wParam、lParam);
}
返回0;
}
您正在编译代码,以控制台
子系统为目标,这就是应用程序执行时出现黑色控制台窗口的原因
这是GCC中的默认选项,可能是因为它很容易操作:您只需要几行cout
就可以立即在屏幕上获取文本。使用console窗口,您不必像这里所做的那样经历创建窗口等所有麻烦
在本例中,您实际上希望链接到WINDOWS
子系统。这就是创建典型GUI应用程序的方式。有两种方法:
-mwindows
链接器选项-Wl,-subsystem,windows
你能把屏幕截图贴在窗口上吗?
-Wl,-subsystem,windows