|
|
小弟看《游戏编程指南》第三章看见一段代码。我照着书打到了vc6中,编译通过了,在链接的时候提示错误:
--------------------Configuration: pro008 - Win32 Debug--------------------
Linking...
1.obj : error LNK2001: unresolved external symbol "int __cdecl InitWindow(struct HINSTANCE__ *,int)" (?InitWindow@@YAHPAUHINSTANCE__@@H@Z)
Debug/pro008.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
pro008.exe - 2 error(s), 0 warning(s)
源代码如下:
#include<windows.h>
BOOL InitWindow(HINSTANCE hInstance,int CmdShow);
LRESULT CALLBACK WinProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM IParam);
HWND hwnd;
int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR IpCmdLine,int nCmdShow)
{
MSG msg;
if (!InitWindow(hInstance,nCmdShow)) return FALSE;
while(1)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if (msg.message==WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}
static BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
WNDCLASS wc;
wc.style=NULL;
wc.lpfnWndProc=(WNDPROC)WinProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=NULL;
wc.hCursor=NULL;
wc.hbrBackground=NULL;
wc.lpszMenuName=NULL;
wc.lpszClassName="MY_Test";
RegisterClass(&wc);
hwnd=CreateWindow("MY_Test",
"My first program",
WS_POPUP|WS_MAXIMIZE,0,0,
GetSystemMetrics(SM_CXSCREEN),
GetSystemMetrics(SM_CYSCREEN),
NULL,NULL,hInstance,NULL);
if(!hwnd) return FALSE;
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}
LRESULT CALLBACK WinProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM IParam)
{
switch(message)
{
case WM_KEYDOWN:
switch(wParam)
{
case VK_ESCAPE:
MessageBox(hWnd,"ESC 健按下了!确定后退出!","Keyboard",MB_OK);
PostQuitMessage(0);
break;
}
break;
case WM_RBUTTONDOWN:
MessageBox(hWnd,"鼠标右键按下了!","Mouse",MB_OK);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd,message,wParam,IParam);
}
我上网搜索的时候收到一个别人也是问的这种问题,都是这段代码的这种问题。请各位帮帮我,我是菜鸟不懂的滴。
谢谢。
另外我从网上下了《游戏编程指南》的代码,可以运行正常,不过好像和这个书上面的那段不是很一样呀。 |
|