求解win7 64位上安装Qt4.8.6 + Qt Creator3.1.0 + mingw ??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求解win7 64位上安装Qt4.8.6 + Qt Creator3.1.0 + mingw ??相关的知识,希望对你有一定的参考价值。

安装了好几次,一直不能运行成功,求救。
我不知道是系统环境没设置好,还是啥,烦死了。

HelloWorld,可以编译,就是运行exe的时候马上退出

参考技术A 控制台程序,双击本来就是运行完退出,一闪而过。追问

不,是出来一个运行错误的提示,

追答

错误贴出来看一下。

参考技术B 我也有同样的问题,目前你的问题解决了吗

C++ Win32求解MessageBox消息对话框没法显示出来,但可以enter来控制

运行后的窗口可以正常显示出来,我设置了一个点击关闭窗口后弹出一个MessageBox消息对话框来确认是否关闭窗口,但是这个MessageBox不能正常显示;
点击关闭按钮后原来的窗口变成锁定状态,不能操作,但是可以通过enter键来操作MessageBox对话框确认关闭窗口!现象就好像是MessageBox对话框功能出来了,就是看不到框而已!
请问各位大神,怎样才能令这个MessageBox对话框正常显示。
#include <windows.h>

LRESULT CALLBACK win(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)

WNDCLASS wc;

wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hIcon = LoadIcon(NULL,IDI_WINLOGO);
wc.hInstance = hInstance;
wc.lpfnWndProc = win;
wc.lpszClassName = "first";
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;

RegisterClass(&wc);

HWND hwnd;
hwnd = CreateWindow("first","第一个窗口",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);

MSG msg;
while(GetMessage(&msg,NULL,0,0))

TranslateMessage(&msg);
DispatchMessage(&msg);

return 0;


LRESULT CALLBACK win(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)

switch(uMsg)

case WM_CHAR:
break;
case WM_LBUTTONDOWN:
break;
case WM_PAINT:
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否结束?","提醒!",MB_YESNO))

DestroyWindow(hwnd);

break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);

return 0;

如果你不删除这个
case WM_PAINT:
break;
会导致系统未正确重绘窗口,而把MessageBox窗口覆盖。所以MessageBox已经出来了,但是显示不正常。
参考技术A MessageBox();中的窗口句柄要为空追问

试过了,还是不行~

追答

case WM_CHAR:
break;
case WM_LBUTTONDOWN:
break;
case WM_PAINT:
break;

这些你都没有自己添加的消息响应,可以不写

追问

如果不去掉呢?就会有BUG吗?为什么?

追答

写了会执行你写的,没写会执行系统默认的

参考技术B 把WM_PAINT消息的空处理拿掉。追问

是不是WM_PAINT消息一定要有消息??

追答

case WM_PAINT:
break;

我的意思是把这两行删掉。

追问

我知道你叫我将那两行去掉,我的问题是如果不去掉的话呢?一定要在里面做出消息响应的操作吗?不作出操作就会有错误吗?

以上是关于求解win7 64位上安装Qt4.8.6 + Qt Creator3.1.0 + mingw ??的主要内容,如果未能解决你的问题,请参考以下文章

QT4.8.6安装教程

在windows系统上安装Qt4.8.6

QT4.8.6静态编译

CentOS6.5安装Qt4.8.6+QtCreator2.6.1

tslib 1.4 qt4.8.6移植过程记录

zzUbuntu安装配置Qt环境