Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

10.12.2005, 13:54

Programm stürzt beim benutzen der ID3DDevice9 ab

Ich hab da ein klitzekleines Problem:
Das Programm lässt sich kompilieren, stürzt aber immer ab, wenn ich irgendetwas mit der Device machen will(clear, setFVF).
Der Compiler gibt keinen Fehler aus.


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <windows.h>
#include <D3D9.h>
#include <StdIO.h>
#include "resource.h"

LRESULT CALLBACK WinProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    return DefWindowProc(hWnd, Msg, wParam,  lParam);
}
                         

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
    WNDCLASSEX wndclassex;
    wndclassex.cbClsExtra = NULL;
    wndclassex.cbSize = sizeof(WNDCLASSEX);
    wndclassex.cbWndExtra = NULL;
    wndclassex.hbrBackground = (HBRUSH)(COLOR_WINDOW);
    wndclassex.hCursor= LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CURSOR1));
    wndclassex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
    wndclassex.hIconSm = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
    wndclassex.hInstance = hInstance;
    wndclassex.lpfnWndProc = WinProc;
    wndclassex.lpszClassName = "Philip";
    wndclassex.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
    wndclassex.style = CS_CLASSDC;
    RegisterClassEx(&wndclassex);
    HWND hwnd;
    hwnd = CreateWindowEx(NULL, "Philip", "Philip", NULL, 0, 0, 1024, 768, 
        NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd, nShowCmd);


    IDirect3D9 *D3D = Direct3DCreate9(D3D_SDK_VERSION);
    IDirect3DDevice9 *D3DDev;
    D3DPRESENT_PARAMETERS pp;
    pp.Windowed = TRUE;
    pp.BackBufferCount = 1;
    pp.BackBufferFormat = D3DFMT_UNKNOWN;
    pp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    
    D3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_REF, hwnd, 
        D3DCREATE_SOFTWARE_VERTEXPROCESSING, &pp, &D3DDev);

    return 0;
}

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

2

10.12.2005, 13:57

wosn deine nachrichtenschleife?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

10.12.2005, 14:17

Und wo überprüfst Du, ob "CreateDevice" überhaupt erfolgreich war?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

10.12.2005, 14:24

du hast was vergessen:

C-/C++-Quelltext

1
ZeroMemory( &pp, sizeof( D3DPRESENT_PARAMETERS ) );

Werbeanzeige