《windows程序设计》中的最初的例子,编译正确,link出错,提示如下:(50分)

L

lncd

Unregistered / Unconfirmed
GUEST, unregistred user!
//我在2000和98下均进行了测试。VC++6。0
//代码如下:
#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
WNDCLASS wndclass
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.lpszMenuName = NULL
wndclass.lpszClassName= szAppName
if (!RegisterClass (&amp;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 (&amp;msg, NULL, 0, 0))
{
TranslateMessage (&amp;msg)
DispatchMessage (&amp;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 = begin
Paint (hwnd, &amp;ps)
GetClientRect (hwnd, &amp;rect)
DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &amp;rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER)
EndPaint (hwnd, &amp;ps)
return 0
case WM_DESTROY:
PostQuitMessage (0)
return 0
}
return DefWindowProc (hwnd, message, wParam, lParam)
}
//出错信息如下
--------------------Configuration: HelloWin - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/HelloWin.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
HelloWin.exe - 2 error(s), 0 warning(s):
//能帮我分析一下为什么吗?
 
你用了PlaySound但没有加多媒体库WINMM.LIB,仔细看一下,书上有说
 
因为您的工程设置使用的是Console程序,而不是windows程序。
解决办法:可以更改工程设置。最简单的是新建一个Win32工程,然后把你的程序拷贝过去替代。
 
接受答案了.
 

Similar threads

顶部