各位高手,大家好。小弟新学windows编程,将《MFC Windows应用程序设计》(第二版)任哲等编著的一个例子敲入VC,显示了如下错误,望高手解惑。谢谢。例子很简单,耽误不了您多少时间,定义两个窗口类型,“窗口1”“窗口2”,窗口1背景白色,窗口2背景灰色。用着两个窗口类型新建三个窗口,标题为Windows1,Windows2,Windows3,当用鼠标左键单击程序窗口区时计算机扬声器发出“叮”的声音。
例子代码:
#include "stdafx.h"
#include<windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
HWND hwnd1;
HWND hwnd2;
HWND hwnd3;
MSG  msg; char lpszClassName1[]="窗口1";
WNDCLASS wc1;
wc1.style=0;
wc1.lpfnWndProc=WndProc;
wc1.cbClsExtra=0;
wc1.cbWndExtra=0;
wc1.hInstance=hInstance;
wc1.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc1.hCursor=LoadCursor(NULL,IDC_ARROW);
wc1.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc1.lpszMenuName=NULL;
wc1.lpszClassName=lpszClassName1;
RegisterClass(&wc1); char lpszClassName2[]="窗口2";
WNDCLASS wc2;
wc2.style=0;
wc2.lpfnWndProc=WndProc;
wc2.cbClsExtra=0;
wc2.cbWndExtra=0;
wc2.hInstance=hInstance;
wc2.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc2.hCursor=LoadCursor(NULL,IDC_ARROW);
wc2.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);
wc2.lpszMenuName=NULL;
wc2.lpszClassName=lpszClassName2; RegisterClass(&wc2); hwnd1=CreateWindow(lpszClassName1,
               "Windows1",
   WS_OVERLAPPEDWINDOW,
   120,50,700,500,
   NULL,
   NULL,
   hInstance,
   NULL); hwnd2=CreateWindow(lpszClassName2,
               "Windows2",
   WS_OVERLAPPEDWINDOW,
   150,80,750,550,
   NULL,
   NULL,
   hInstance,
   NULL); hwnd3=CreateWindow(lpszClassName1,
               "Windows3",
   WS_OVERLAPPEDWINDOW,
   200,130,500,300,
   NULL,
   NULL
   hInstance,
   NULL);
ShowWindow(hwnd1,nCmdShow);
UpdateWindow(hwnd1); ShowWindow(hwnd2,nCmdShow);
UpdateWindow(hwnd2); ShowWindow(hwnd3,nCmdShow);
UpdateWindow(hwnd3); while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
 
LRESULT CALLBACK WndProc(HWND hwnd,
 UINT message,
 WPARAM wParam,
 LPARAM lParam)
{
switch(message)
{
case WM_LBUTTONDOWN:
{
MessageBeep(0);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}错误:
E:\GUSTAVE\WINDOWS\WINDOWS.cpp(74) : warning C4003: not enough actual parameters for macro 'CreateWindowA'
E:\GUSTAVE\WINDOWS\WINDOWS.cpp(74) : error C2146: syntax error : missing ')' before identifier 'hInstance'
E:\GUSTAVE\WINDOWS\WINDOWS.cpp(74) : error C2660: 'CreateWindowExA' : function does not take 10 parameters
E:\GUSTAVE\WINDOWS\WINDOWS.cpp(74) : error C2059: syntax error : ')'
Error executing cl.exe.WINDOWS.exe - 3 error(s), 1 warning(s)