请大家帮小弟我看看这个C++源码哪里出现错了,并改正一上;如若可以运行成功,就可得分!多谢了

请大家帮我看看这个C++源码哪里出现错了,并改正一下;如若可以运行成功,就可得分!谢谢了!
#include <windows.h>
#include <stdio.h>

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

int WINAPI WinMain(
HINSTANCE hInstance, 
HINSTANCE hPrevInstance, 
LPSTR lpCmdLine, 
int nCmdShow )
{
 WNDCLASS wndcls;

 wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
 wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
 wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
 wndcls.hInstance=hInstance;
 wndcls.lpfnWndProc=WinSunProc;
 wndcls.lpszClassName="Weixin2003";  
 wndcls.lpszMenuName=NULL;

 wndcls.style=CS_HREDRAW | CS_VREDRAW;
 wndcls.cbClsExtra=0;
 wndcls.cbWndExtra=0;
 RegisterClass(&wndcls);
 HWND hwnd;
 hwnd=CreateWindow("weixin2003","喜欢语言,热爱编程", 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 WinSunProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
 switch(uMsg)
 {
 case WM_CHAR:
  char szChar[20];
  sprintf(szChar,"char is %d",wParam);
  MessageBox(hwnd,szChar,"weixin",0); 
  break;
 case WM_LBUTTONDOWN:
  MessageBox(hwnd,"mouse clicked","weixin",0); 
  HDC hdc;
  hdc=GetDC(hwnd);
  TextOut(hdc,0,50,"计算机编程语言培训",strlen("计算机编程语言培训"));  
  ReleaseDC(hwnd,hdc);
  break;
 case WM_PAINT:
  HDC hDC;
  PAINTSTRUCT ps;
  hDC=BeginPaint(hwnd,&ps);
  TextOut(hDC,0,0,"维新培训",strlen("维新培训")); 
  EndPaint(hwnd,&ps);
  break;
 case WM_CLOSE:
  if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO)) 
  {
  DestroyWindow(hwnd);
  }
  break;
 case WM_DESTROY:
  PostQuitMessage(0);
  break;
 default:
  return DefWindowProc(hwnd,uMsg,wParam,lParam);
 }
 return 0;
}


------解决方案--------------------
没有问题啊
你应该是工程建错了?
如果不想改工程:
加一句:
#pragma comment(linker,"/subsystem:windows")
------解决方案--------------------
wndcls.lpszClassName="Weixin2003"; 

hwnd=CreateWindow("weixin2003","喜欢语言,热爱编程", WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);


窗口名字不一样,注意大小写