VC++简单窗口实例问题
刚开始学VC++,然后我把书上的原代码敲进去了,结果一堆编译错误。。这是书上第一个例程啊,不知道为什么,求解!#include"stdafx.h"#include<tch...
刚开始学VC++,然后我把书上的原代码敲进去了,结果一堆编译错误。。这是书上第一个例程啊,不知道为什么,求解!
#include "stdafx.h"
#include<tchar.h>
#include<Windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASSEX wcex;
HWND hwnd;
MSG msg;
TCHAR szWindowClass[]=L"窗口实例";
TCHAR szTitle[]=L"My Windows";
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.style=0;
wcex.lpfnWndProc=WndProc;
wcex.cbClsExtra=0;
wcex.hInstance=hInstance;
wcex.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_APPLICATION));
wcex.hCursor=LoadCursor(NULL,IDC_ARROW);
wcex.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wcex.lpszMenuName=NULL;
wcex.lpszClassName=szWindowClass;
wcex.hIconSm=LoadIcon(wcex.hIstance,MAKEINTRESOURCE(IDI_APPLICATION));
if(!RegisterClassEx(wcex))
{
MessageBox(NULL,_T("窗口注册失败!"),_T("窗口注册"),NULL);
return 1;
}
hWnd=CreateWindow(
szWindowclass,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USDEFAULT,CW_USDEFAULT,
CW_USDEFAULT,CW_USDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if(!hWnd)
{
MessageBox(NULL,L"创建窗口失败!",_T("创建窗口"),NULL);
return 1;
}
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return(int) msg.wParam;
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,message,wParam,lParam);
break;
}
return 0;
}
}
VS2008 报错
VC++6.0 报错 展开
#include "stdafx.h"
#include<tchar.h>
#include<Windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASSEX wcex;
HWND hwnd;
MSG msg;
TCHAR szWindowClass[]=L"窗口实例";
TCHAR szTitle[]=L"My Windows";
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.style=0;
wcex.lpfnWndProc=WndProc;
wcex.cbClsExtra=0;
wcex.hInstance=hInstance;
wcex.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_APPLICATION));
wcex.hCursor=LoadCursor(NULL,IDC_ARROW);
wcex.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wcex.lpszMenuName=NULL;
wcex.lpszClassName=szWindowClass;
wcex.hIconSm=LoadIcon(wcex.hIstance,MAKEINTRESOURCE(IDI_APPLICATION));
if(!RegisterClassEx(wcex))
{
MessageBox(NULL,_T("窗口注册失败!"),_T("窗口注册"),NULL);
return 1;
}
hWnd=CreateWindow(
szWindowclass,
szTitle,
WS_OVERLAPPEDWINDOW,
CW_USDEFAULT,CW_USDEFAULT,
CW_USDEFAULT,CW_USDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if(!hWnd)
{
MessageBox(NULL,L"创建窗口失败!",_T("创建窗口"),NULL);
return 1;
}
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return(int) msg.wParam;
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,message,wParam,lParam);
break;
}
return 0;
}
}
VS2008 报错
VC++6.0 报错 展开
5个回答
展开全部
比较明显的。hWnd没有声明;
既然用TCHAR来定义字符数组,就不要使用L宏;
MessageBox是MFC的函数,不能在这里使用,除非你使用MFC
既然用TCHAR来定义字符数组,就不要使用L宏;
MessageBox是MFC的函数,不能在这里使用,除非你使用MFC
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-09-29 · 知道合伙人互联网行家
关注
展开全部
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
HWND hwnd;
wParam,lParam, hWnd 都是声明时大小写不匹配
HWND hwnd;
wParam,lParam, hWnd 都是声明时大小写不匹配
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定建的工程不对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是新建的WIN32工程?
追问
是新建的WIN32控制台
追答
不能选控制台
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
图看不了,我帮不了你了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询