Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 23:10   #1
evgenrpo
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 71
По умолчанию DirectX9

Почему ошыбка??? Подскажыте пожалуйста
Код:
#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#include <d3dx9math.h>
#include <mmsystem.h>

#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"winmm.lib")
#pragma comment(lib,"d3dx9.lib")


LPDIRECT3D9 pDirect3D = NULL;
LPDIRECT3DDEVICE9 pDirect3Ddevice = NULL;
LPDIRECT3DVERTEXBUFFER9 pBufferVershin = NULL;
struct CUSTOMVERTEX
{
FLOAT x,y,z;
DWORD colol;
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)
void Matrix()
{
D3DXMATRIX MatrixWorld;
D3DXMATRIX MatrixView;
D3DXMATRIX MatrixProjection;

UINT Time = timeGetTime()%5000;
FLOAT Angle = Time * (2.0f * D3DX_PI)/5000.0f;

D3DXMatrixRotationY(&MatrixWorld,Angle);
pDirect3Ddevice->SetTransform(D3DTS_WORLD,&MatrixWorld);

D3DXMatrixLookAtLH(&MatrixView,&D3DXVECTOR3(0.0f,0.0f,-8.0f),&D3DXVECTOR3(0.0f,0.0f,0.0f),&D3DXVECTOR3(0.0f,1.0f,0.0f));
pDirect3Ddevice->SetTransform(D3DTS_VIEW,&MatrixView);

D3DXMatrixPerspectiveFovLH(&MatrixProjection,D3DX_PI/4,1.0f,1.0f,100.0f);
pDirect3Ddevice->SetTransform(D3DTS_PROJECTION,&MatrixProjection);
}
void RenderingDirect3D()
{
	if(pDirect3Ddevice==NULL)
	{return;}
	pDirect3Ddevice->Clear(0,NULL,D3DCLEAR_TARGET,
		D3DCOLOR_XRGB(0,255,0),1.0f,0);
	pDirect3Ddevice->BeginScene();
	pDirect3Ddevice->SetStreamSource(0,pBufferVershin,0,sizeof(CUSTOMVERTEX));
	pDirect3Ddevice->SetFVF(D3DFVF_CUSTOMVERTEX);
	pDirect3Ddevice->DrawPrimitive(D3DPT_TRIANGLELIST,0,2);
	pDirect3Ddevice->EndScene();
	pDirect3Ddevice->Present(NULL,NULL,NULL,NULL);
}
void DeleteDirect3D()
{
if(pDirect3Ddevice!= NULL)
{
pDirect3Ddevice->Release();
}
if(pDirect3D!=NULL)
{
pDirect3D->Release();
}
}
HRESULT InitialBufferVeshin()
{
	CUSTOMVERTEX Vershin[] = 
	{
		{1.0f, -1.0f ,0.0f,0x00ffffff}, //X
		{-1.0f, -1.0f,0.0f,0x00000fff}, //Y
        {-1.0f, 1.0f,0.0f,0x00000fff},

		{-1.0f, 1.0f,0.0f,0x00000fff},
		{1.0f, 1.0f,0.0f,0x0000ffff},
		{1.0f, -1.0f,0.0f,0x0000ffff}//Z
	};
	if(FAILED(pDirect3Ddevice->CreateVertexBuffer(6*sizeof(CUSTOMVERTEX),
		0,D3DFVF_CUSTOMVERTEX,
		D3DPOOL_DEFAULT,
		&pBufferVershin,NULL)))
	{
	return E_FAIL;
	}
	void* pBV;
	if(FAILED(pBufferVershin->Lock(0,sizeof(Vershin),(void**)&pBV,0)))
	{
		return E_FAIL;
	}
	memcpy(pBV,Vershin,sizeof(Vershin));
	pBufferVershin->Unlock();
	return S_OK;
}
LRESULT CALLBACK MainWinProc(HWND hwnd,UINT Message,WPARAM wparam,LPARAM lparam)
{
	switch(Message)
	{
	/*case WM_PAINT:
		
		break;*/
	case WM_DESTROY:
		{
			DeleteDirect3D();
		PostQuitMessage(0);
		return (0);
		}//break;
	}
	return (DefWindowProc(hwnd,Message,wparam,lparam));
}
HRESULT InitialDirect3D(HWND hwnd)
{
	
	if (NULL == (pDirect3D = Direct3DCreate9(D3D_SDK_VERSION)))
	{
		
		return E_FAIL;
	}
	D3DDISPLAYMODE Display;
	if (FAILED(pDirect3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&Display)))
	{
		return E_FAIL;
	}
		D3DPRESENT_PARAMETERS Direct3DParametr;
	ZeroMemory(&Direct3DParametr,sizeof(Direct3DParametr));
	Direct3DParametr.Windowed = true;
	Direct3DParametr.SwapEffect = D3DSWAPEFFECT_DISCARD;
	Direct3DParametr.BackBufferFormat = Display.Format;
	if(FAILED(pDirect3D->CreateDevice(D3DADAPTER_DEFAULT,
		D3DDEVTYPE_HAL,
		hwnd,
		D3DCREATE_HARDWARE_VERTEXPROCESSING,
		&Direct3DParametr,
		&pDirect3Ddevice
		)))
	{
		return E_FAIL;
	}
	//Отключить отсичение DirectX
	pDirect3Ddevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);
	//Отключить освещение DirectX
	pDirect3Ddevice->SetRenderState(D3DRS_LIGHTING,FALSE);
	return S_OK;
}


Ошыбки.
Error 2 error LNK2001: unresolved external symbol _D3DXMatrixLookAtLH@16 WindowsBazis.obj D3D9
Error 3 error LNK2001: unresolved external symbol _Direct3DCreate9@4 WindowsBazis.obj D3D9
Error 4 error LNK2001: unresolved external symbol _D3DXMatrixPerspectiveFovLH@20 WindowsBazis.obj D3D9
Error 5 error LNK2001: unresolved external symbol _D3DXMatrixRotationY@8 WindowsBazis.obj D3D9
Error 6 fatal error LNK1120: 4 unresolved externals D:\3dgame\D3D9\Release\D3D9.exe 1 D3D9
evgenrpo вне форума Ответить с цитированием
Старый 30.03.2010, 23:27   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

А вы либы подключили?
p51x вне форума Ответить с цитированием
Старый 30.03.2010, 23:38   #3
evgenrpo
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 71
По умолчанию

Да подключил Почему так получается незнаю
evgenrpo вне форума Ответить с цитированием
Старый 31.03.2010, 00:58   #4
evgenrpo
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 71
По умолчанию

Все заработало DirectX9 заново поставил и все ок
evgenrpo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература DirectX9 dampirik Gamedev - cоздание игр: Unity, OpenGL, DirectX 24 11.10.2017 15:05
Книга по DirectX9. Для новичков. Montana19 Помощь студентам 1 23.11.2009 13:18