|
|
我照书上的源码写入后怎么什么也没有啊?在编译中有几个错误也改正了,提示没有错误.就是不显示窗口什么也没有,后来我又把书里带的源码编译了就可以.但我把他的源码复制到一个新的项目里就什么都没有了,也是不显窗口,这倒底是怎么回事儿啊???
我放上代码...
#include <d3d9.h>
LPDIRECT3D9 g_pD3D=NULL;
LPDIRECT3DDEVICE9 g_pd3dDevice=NULL;
HRESULT InitD3D( HWND hWnd );
VOID Cleanup();
VOID Render();
LRESULT WINAPI MsgProc( HWND hwnd, UINT msg, WPARAM wParam,
LPARAM lParam );
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPreinst, LPSTR c_s,
INT c_show )
{
WNDCLASS wndclass={ 0, MsgProc, 0, 0, hInst, NULL,
NULL, NULL, NULL, "Direct" };
RegisterClass( &wndclass );
HWND hWnd=CreateWindow( "Direct", "direct001",
WS_OVERLAPPEDWINDOW, 100, 100, 300,
300, NULL, NULL,wndclass.hInstance,
NULL );
if( SUCCEEDED( InitD3D( hWnd ) ) )
{
ShowWindow( hWnd, SW_SHOW );
UpdateWindow( hWnd );
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
Cleanup();
UnregisterClass( "Direct", wndclass.hInstance );
return 0;
}
HRESULT InitD3D( HWND hWnd )
{
if( NULL==( g_pD3D=Direct3DCreate9( D3D_SDK_VERSION ) ) )
return E_FAIL;
D3DDISPLAYMODE d3ddm;
if( FAILED( g_pD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT,
&d3ddm ) ) )
return E_FAIL;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof( d3ddm ) );
d3dpp.Windowed=TRUE;
d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat=d3ddm.Format;
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pd3dDevice ) ) )
{
return E_FAIL;
}
return S_OK;
}
VOID Cleanup()
{
if( g_pd3dDevice!=NULL )
g_pd3dDevice->Release();
if( g_pD3D!=NULL )
g_pD3D->Release();
}
VOID Render()
{
if( NULL==g_pd3dDevice )
return;
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET,
D3DCOLOR_XRGB( 0, 0, 255 ), 1.0f, 0 );
g_pd3dDevice->BeginScene();
//
g_pd3dDevice->EndScene();
g_pd3dDevice-> resent( NULL, NULL, NULL, NULL );
}
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam,
LPARAM lParam )
{
switch( msg )
{
case WM_PAINT:
Render();
ValidateRect( hWnd, NULL );
return 0;
case WM_DESTROY:
PostQuitMessage( 0 );
return 0;
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
[em17] [em17] [em17] [em17] |
|