所以我试图进入一些directX编程,所以我正在关注这本名为“Beginning DirectX 11 Game Programming”的书,但我已经在第二个示例中卡住了。DirectX无法解析的外部错误
我花了大概一个小时寻找这个问题的解决方案,但没能找到任何可以帮助我的东西。
所以错误代码,我得到的是这样:
Main.obj : error LNK2019: unresolved external symbol "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" ([email protected]@[email protected]@[email protected]) referenced in function [email protected]
而这里的代码 - 正好写在书中,除了LRESULT CALLBACK的WndProc
#include <Windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance, LPWSTR cmdLine, int cmdShow)
{
UNREFERENCED_PARAMETER(prevInstance);
UNREFERENCED_PARAMETER(cmdLine);
WNDCLASSEX wndClass = { 0 };
wndClass.cbSize = sizeof(WNDCLASSEX);
wndClass.style = CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc = WndProc;
wndClass.hInstance = hInstance;
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wndClass.lpszMenuName = NULL;
wndClass.lpszClassName = "DX11BookWindowClass";
if(!RegisterClassEx(&wndClass))
return -1;
RECT rc = { 0,0,640,480 };
AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW, FALSE);
HWND hwnd = CreateWindowA("DX11BookWindowClass", "Blank Win32 Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left,
rc.bottom - rc.top, NULL, NULL, hInstance, NULL);
if(!hwnd)
return -1;
ShowWindow(hwnd, cmdShow);
return 0;
}
您的WndProc函数定义在哪里? – 2012-07-25 21:50:00
如果用'WndProc'替换分号';',并且返回'{return 0; }错误会消失,但这只会解开更多的问题。找到一个好的工作示例。了解它是如何工作的。 – 2012-07-25 21:52:30