Kernighan和Ritchie的经典教程《The C Programming Language》以打印简单“helloworld”的C程序的第一个示例开篇。从此,“helloworld”就成了描述一个人编写的第一个程序的代名词——不管是什么语言技术,即使这个程序实际上并没有在字体上输出“helloworld”这几个字。对于初学者来说,这个“helloworld”程序是可怕的。他会想“我一定很笨,连这个最基本的helloworld程序都很难,再这样下去,我不会喜欢编程了”。其实这个问题的原因是我们把“***”和“最简单的混淆了。”helloworld程序可以是任何程序,没有难度限制。第一次编程的时候,你不知道用哪个编译器,代码文件放在哪里,应该是什么格式等等,需要学习,很多知识需要学习,慢慢学习,才能真正编程。JohnD.Cook文章刚开始学习编程的时候,我一直希望尽快度过写“helloworld”程序的阶段,希望马上开始写真正有用的程序。但事实上,我发现我大半辈子都在写“helloworld”程序,看不到尽头:CharlesPetzold在他的书《Programming Windows》中描述的第一个Windows程序。我只能find本书的Windows98版本。不知道和原来的代码有什么不同,但我的印象是原来的代码会比现在的代码更可怕。/*------------------------------------------------------HELLOWIN.C--显示"Hello,Windows98!"inclientarea(c)CharlesPetzold,1998----------------------------------------------------------*/#includeLRESULTCALLBACKWndProc(HWND,UINT,WPARAM、LPARAM);intWINAPIWinMain(HINSTANCEhInstance、HINSTANCEhPrevInstance、PSTRszCmdLine、intiCmdShow){staticTCHARszAppName[]=TEXT(“HelloWin”);HWNDhwnd;MSGmsg;WNDCLASSwndclass;wndclass.style=CS_HREDRAW|CS_VREDRAW;wndclass.lpfndExtraWndProc;wndclass.lpfndExtraWndProc;=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.lpszMenuName=NULL;wndclass.lpszClassName=szAppName;if(!RegisterClass(&wndclass)){MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!"),szAppName,MB_ICONERROR);return0;}hwnd=CreateWindow(szAppName,//windowclassnameTEXT("TheHelloProgram"),//windowcaptionWS_OVERLAPPEDWINDOW,//windowstyleCW_USEDEFAULT,//initialxpositionCW_USEDEFAULT,//initialypositionCW_USEDEFAULT,//initialxsizeCW_USEDEFAULT,//initialysizeNULL,//parentwindowhandleNULL,//windowmenuhandlehInstance,//programinstancecreamhandleparameter),Showiprograminstancecreamhandleparameter);//;UpdateWindow(hwnd);while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}returnmsg.wParam;}LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam){HDChdc;PAINTSTRUCTps;RECTrect;开关(消息){caseWM_CREATE:PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC);return0;caseWM_PAINT:hdc=BeginPaint(hwnd,&ps);GetClientRect(hwnd,&rect);DrawText(hdc,TEXT("你好,Windows98!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);EndPaint(hwnd,&ps);return0;caseWM_DESTROY:PostQuitMessage(0);return0;}returnDefWindowProc(hwnd,message,wParam),l参数);}
