好的。因此,在迁移到 VS 2012 之前,我正在尝试制作一个小框架来处理图形。我已经可以让窗口出现,我什至创建了一个图形类,但是当我尝试从窗口传递一个 HWND 到我的图形类出现此错误:
1>------ Build started: Project: SZJerkXXI's Framework, Configuration: Debug Win32 ------
1> MWindow.cpp
1>DXGraphics.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "public: __thiscall DXGraphics::DXGraphics(struct HWND__ *)" ( 0DXGraphics@@QAE@PAUHWND__@@@Z)
1>C:\Users\jader\Documents\Visual Studio 2010\Projects\SZJerkXXI's Framework\Debug\SZJerkXXI's Framework.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
注册后,创建并显示一个带有 HWND“hWnd”的窗口。我要做的下一件事是为我的班级创建一个对象:
DXGraphics Game(hWnd)
因为我的构造函数看起来像
DXGraphics::DXGraphics(HWND hWnd)
{
pDirect3D = Direct3DCreate9( D3D_SDK_VERSION );
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp,sizeof( d3dpp ) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;
d3dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
pDirect3D->CreateDevice( D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd, /* <-- handle to the window I can't pass... */
D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE,
&d3dpp,
&pDevice );
}
我正在关注一些教程并在 MSDN 中查找我不理解的东西,但我被困在这里。我不知道为什么它不会通过 HWND。我什至从教程中下载了代码,它做同样的事情,但它在那里工作。
PS:我正在使用 DirectX,并且我已经包含了目录和库。我已经编码了几个月,但我想进步,所以我想知道我做错了什么。谢谢您的帮助!!!