VC++6.0下的Windows编程这个程序为什么运行不了呢?
//HellApi.cpp#include<windows.h>
#pragma comment (lib, "winmm.lib") playsound
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 ;
WNDCLASS wndclass ;
//wndclass是本程序的窗口类,下面各赋值语句指定本程序窗口类的相关特征值,
//如窗口的类型、处理窗口事件的窗口函数、窗口的光标等。
wndclass.style = CS_HREDRAW | CS_VREDRAW ; //窗口类型
wndclass.lpfnWndProc = WndProc ; //窗口函数,本窗口发生的事件由它处理
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ; //程序句柄,本窗口属该程序,其值由Windows定义
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; //应用程序图标
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; //窗口光标
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; //白色背景
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ; //本窗口类的名字
RegisterClass (&wndclass); //注册窗口
//一个窗口被定义后,只有用RegisterClass登记之后才能应用。下面的CreateWindow
//命令将用上面登记的wndclass窗口类建立一个窗口,并用hwnd窗口句柄标识
//该窗口,该句柄可被程序的其它语句所引用
hwnd = CreateWindow ( szAppName, // 用于建立窗口的类名
TEXT ("The Hello Program"), // 窗口标题
WS_OVERLAPPEDWINDOW, // 窗口类型
CW_USEDEFAULT, // 窗口左上角X坐标为默认值
CW_USEDEFAULT, // 窗口左上角Y坐标为默认值
CW_USEDEFAULT, // 窗口宽度为默认值
CW_USEDEFAULT, // 窗口高度为默认值
NULL, // 该窗口没有父窗口
NULL, // 该窗口没有菜单
hInstance, // 创建本窗口的程序句柄
NULL) ; // 系统保留参数
ShowWindow (hwnd, iCmdShow ) ; //显示窗口,hwnd代表上面建立的窗口
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:
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, "Hello, Windows API ", -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) ;
}
最后会提示LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/HellApi.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
知道可以在工程-设置-连接里将console改为windows但是另外编写一个windows程序还要再改一遍。
为什么要这么改呢?有办法可以以后都不用改吗?