Skocz do zawartości

Zablokowane Proszę o poprawkę


Crackkk-GM

Rekomendowane odpowiedzi

Witajcie,

Dziś wziąłem się za pisanie DLL'ki, dzięki której będzie można napisać grę z użyciem d3d w gm'ie... I mam parę błędów... (taki mały teścik chciałem zrobić czy mi to wyjdzie :P)

I podczas kompilacji wyskoczyło parę błędów.... Mógłby je ktoś poprawić?? Będę bardzo wdzięczny :) Oto kod źródłowy:

/*
D3D4GM.Dll: Direct 3D For GM :) By Crackkk-GM
*/
#include <d3d9.h> 
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE) 
#define export extern "C" __declspec(dllexport)
export double _d3d_start(void)
{
LPDIRECT3D9 g_pD3D=NULL; 
LPDIRECT3DDEVICE9 g_pd3dDevice=NULL;
if (NULL==(g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) ) return E_FAIL;
};

export double _d3d_CreateRenderWindow (double a1,double a2,double a3)
{
       D3DPRESENT_PARAMETERS pp; 
ZeroMemory(&pp,sizeof(pp)); 
pp.Windowed = a1;
pp.BackBufferWidth = a2;
pp.BackBufferHeight = a3; 
pp.BackBufferFormat = D3DFMT_A8R8G8B8;
pp.SwapEffect = D3DSWAPEFFECT_FLIP;
       if( FAILED( g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &pp, &g_pd3dDevice) ) ) return E_FAIL;
};

export double _d3d_RenderWindow (double a1)
{
       g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, a1, 1.0f, 0L );
       g_pd3dDevice->BeginScene(); 
g_pd3dDevice->EndScene();
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
};

export double _d3d_end(void)
{
       if(g_pd3dDevice!= NULL) g_pd3dDevice->Release(); 
if(g_pD3D!= NULL) g_pD3D->Release();
};

export double _d3d_PolygonsBuffor(double a1,double a2)
{
       LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL;
       
       struct CUSTOMVERTEX 
       { 
FLOAT x, y, z, rhw; //pozycja wierzchołka 
DWORD color; //kolor wierzchołka 
      };
if(FAILED(g_pd3dDevice->CreateVertexBuffer(a1*sizeof(CUSTOMVERTEX), a2, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVB, NULL))) 
       { 
return E_FAIL; 
       }   
};
export double _d3d_DrawPolygons(double c1,double a1,double a2,double a3,double a4,double a5,double a6,double a7,double a8,double a9,double a10,double a11,double a12)
{
       CUSTOMVERTEX vertices[] = 
{ 
{ a1, a2, a3, a4, c1, }, 
{ a5, a6, a7, a8, c1, }, 
{ a9, a10, a11, a12, c1, }, 
}; 

VOID* pVertices; 
if( FAILED( g_pVB->Lock(0, sizeof(vertices),(void**)&pVertices,0))) return E_FAIL; 
memcpy( pVertices, vertices, sizeof(vertices) ); 
g_pVB->Unlock();
}

Wiecie, nie śmiejcie się :P

Odnośnik do komentarza
Udostępnij na innych stronach

pp.Windowed = a1;

Żal... nie masz pojęcia co robisz... a "wklejanie" całego kodu z tekstem "hej znajdzcie mi tu błąd" jest lamerskie.. Najpierw proponuje się nauczyć języka programowania a potem zabrać się za biblioteki graficzne.. Kompilujesz ręcznie? bo jakoś nie chce wierzyć, że nie dostałeś dokładnego komunikatu o błedzie..

Odnośnik do komentarza
Udostępnij na innych stronach

@Misztrzunio: Błędy podam za poł godziny (siorka na kompie :/)

Dla kogoś, kto się zna to te kody nie sprawiają trudności...

nawet nie wiemy (tak jak ty) co ten kod robi :/ .
Może ty nie wiesz......

@Will: pp.Windowed = a1; // to jest "odpowiednik" true = okienko, false = fullscreen, a1 = argument zobacz troszkę wyżej to będziesz wiedzieć o co chodzi ^^

Odnośnik do komentarza
Udostępnij na innych stronach

export double _d3d_DrawPolygons(double c1,double a1,double a2,double a3,double a4,double a5,double a6,double a7,double a8,double a9,double a10,double a11,double a12)

{

CUSTOMVERTEX vertices[] =

{

{ a1, a2, a3, a4, c1, },

{ a5, a6, a7, a8, c1, },

{ a9, a10, a11, a12, c1, },

};

 

VOID* pVertices;

if( FAILED( g_pVB->Lock(0, sizeof(vertices),(void**)&pVertices,0))) return E_FAIL;

memcpy( pVertices, vertices, sizeof(vertices) );

g_pVB->Unlock();

}

 

Żal 2... Myślenie nie boli.. fajne argumenty funkcji! Ale myśle , że tu już błąd widzisz.. a co do wyżej to chodziło mi o wartośc double, przypisywanie double do bool? strata pamięci..

Odnośnik do komentarza
Udostępnij na innych stronach

Już poprawiam... Dzięki :P moja pomyłka xd

Błędy:

C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp In function `double _d3d_CreateRenderWindow(bool, bool, bool)': 23 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `g_pD3D' undeclared (first use this function)

(Each undeclared identifier is reported only once for each function it appears in.)

23 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `hWnd' undeclared (first use this function)

23 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `g_pd3dDevice' undeclared (first use this function)

C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp In function `double _d3d_RenderWindow(bool)':

28 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `g_pd3dDevice' undeclared (first use this function)

C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp In function `double _d3d_end()':

36 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `g_pd3dDevice' undeclared (first use this function)

37 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `g_pD3D' undeclared (first use this function)

C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp In function `double _d3d_PolygonsBuffor(double, double)':

49 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `g_pd3dDevice' undeclared (first use this function)

C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp In function `double _d3d_DrawPolygons(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)':

56 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `CUSTOMVERTEX' undeclared (first use this function)

56 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp expected `;' before "vertices"

64 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `g_pVB' undeclared (first use this function)

64 C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp `vertices' undeclared (first use this function)

C:\Documents and Settings\Patryk\Pulpit\D3D4GM\Makefile.win [build Error] [dllmain.o] Error 1

Odnośnik do komentarza
Udostępnij na innych stronach

Żal 3? Masz wszystkie błędy wyświetlone.. i wszytskie ładnie opisane.. gdzie Ty widzisz problem.. undeclared..

export double _d3d_start(void)

{

LPDIRECT3D9 g_pD3D=NULL;

LPDIRECT3DDEVICE9 g_pd3dDevice=NULL;

if (NULL==(g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) ) return E_FAIL;

};

skoro masz all zdeklarowane w funkcji to jak niby ma to być znane w innych funkcjach? 0.o Nie kopiuj gotowców z jakiś kursów.. pisz sam..

C:\Documents and Settings\Patryk\Pulpit\D3D4GM\dllmain.cpp In function `double _d3d_DrawPolygons(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)':
żal 4? chodziło o funkcje z przypisywaniem parametru w wyższym poście ^.--
Odnośnik do komentarza
Udostępnij na innych stronach

sorry Ale Ty nie masz zielonego pojęcia co piszesz.. Weź się za jakiś tutorial najpierw c++ potem jakieś api a na końcu DirectX... Inaczej to się mija z celem kompletnie.... Jeśli dalej chcesz tak programy pisac to żal..

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...