为什么在《WINDOWS程序设计》中的代码在WIN2000 VC++6.0的环境下编译出错~!??

2004-04-21 04:09:46
错误提示:
--------------------Configuration: test1 - Win32 Debug--------------------
Compiling...
t11.cpp
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(29) : error C2065: 'WNDCLASwndclass' : undeclared identifier
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(32) : error C2065: 'wndclass' : undeclared identifier
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(32) : error C2228: left of '.style' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(34) : error C2228: left of '.lpfnWndProc' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(36) : error C2228: left of '.cbClsExtra' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(38) : error C2228: left of '.cbWndExtra' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(40) : error C2228: left of '.hInstance' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(42) : error C2228: left of '.hIcon' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(44) : error C2228: left of '.hCursor' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(46) : error C2228: left of '.hbrBackground' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(48) : error C2228: left of '.lpszMenuNam' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test1\t11.cpp(50) : error C2228: left of '.lpszClassName' must have class/struct/union type
Error executing cl.exe.

test1.exe - 12 error(s), 0 warning(s)

代码如下:
HELLOWIN.C

/*------------------------------------------------------------------------

HELLOWIN.C -- Displays "Hello, Windows 98!" in client area

(c) Charles Petzold, 1998

-----------------------------------------------------------------------*/

#include <windows.h>


LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;


int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[] = TEXT ("HelloWin") ;

HWND hwnd ;

MSG msg ;

WNDCLASwndclass ;


wndclass.style = CS_HREDRAW | CS_VREDRAW ;

wndclass.lpfnWndProc = WndProc ;

wndclass.cbClsExtra = 0 ;

wndclass.cbWndExtra = 0 ;

wndclass.hInstance = hInstance ;

wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;

wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;

wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) ;

wndclass.lpszMenuNam = NULL ;

wndclass.lpszClassName= szAppName ;


if (!RegisterClass (&wndclass))

{

MessageBox ( NULL, TEXT ("This program requires Windows NT!"),

szAppName, MB_ICONERROR) ;

return 0 ;

}

hwnd = CreateWindow( szAppName, // window class name

TEXT ("The Hello Program"), // window caption

WS_OVERLAPPEDWINDOW, // window style

CW_USEDEFAULT,// initial x position

CW_USEDEFAULT,// initial y position

CW_USEDEFAULT,// initial x size

CW_USEDEFAULT,// initial y size

NULL, // parent window handle

NULL, // window menu handle

hInstance, // program instance handle

NULL) ; // creation parameters



ShowWindow (hwnd, iCmdShow) ;

UpdateWindow (hwnd) ;



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

{

TranslateMessage (&msg) ;

DispatchMessage (&msg) ;

}

return msg.wParam ;

}


LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

HDC hdc ;

PAINTSTRUCT ps ;

RECT rect ;



switch (message)

{

case WM_CREATE:

PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;

return 0 ;


case WM_PAINT:

hdc = BeginPaint (hwnd, &ps) ;



GetClientRect (hwnd, &rect) ;



DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,

DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

EndPaint (hwnd, &ps) ;

return 0 ;



case WM_DESTROY:

PostQuitMessage (0) ;

return 0 ;

}

return DefWindowProc (hwnd, message, wParam, lParam) ;

}
...全文
43 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangnewton 2004-04-21
  • 打赏
  • 举报
回复
建立项目的时候要选择win32空项目
你再试试
2004-04-21
  • 打赏
  • 举报
回复

有~新的错误~!!!
--------------------Configuration: cc1 - Win32 Debug--------------------
Compiling...
cc1.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/cc1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
wshcdr 2004-04-21
  • 打赏
  • 举报
回复
《WINDOWS程序设计》中是有一些代码本身印刷不对的
snwcwt 2004-04-21
  • 打赏
  • 举报
回复
WNDCLASwndclass ;
改为
WNDCLASS wndclass;
书有没有好好看呀,这是个很明显的错误呀

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧