这是这个问题的延续。
我有以下任务:
WNDCLASSEX wndClass =
{
sizeof( WNDCLASSEX ), CS_CLASSDC, MsgProc, 0, 0,
GetModuleHandle( NULL ), NULL, NULL, NULL, NULL,
"D3D Tutorial", NULL
};
wc = wndClass;
这给了我以下错误:
1>e:\rat_engine\rat_engine\rat_engine\rat_rendererdx9.cpp(19): 错误 C2440: 'initializing' : 无法从 'overloaded-function' 转换为 'WNDPROC'
1>作用域内没有同名的函数与目标类型匹配
由于 MsgProc 下划线是原因,它应该引用以下函数:
LRESULT WINAPI RAT_RendererDX9::MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY:
CleanUp();
PostQuitMessage( 0 );
return 0;
case WM_PAINT:
Render();
ValidateRect( hWnd, NULL );
return 0;
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
在教程中它是这样工作的,我几乎完全复制了它。那么错误来自哪里,我该如何解决呢?
编辑:
MsgProc 的声明是:
private:
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );