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

1

19.03.2008, 16:41

fehler in header

hey leute!!!!
ich brauch eure hilfe!!!
also ich bin erst neu in der programmierung mit directX. So habe ich im internetbeispiele gefunden und diese dann richtig abgetippt oder die quellcodes geladen.
ABER als ich die beispiele unter mircosoft VC 2005 express kompilieren wollte kommmen soooooo unendlich viele fehler!!!
ich hab schon daraus gelesen das der fehler nicht in dem eigentlichen quellcode liegt, sondern in den headern von direct X!!!
z.b. winnt.h oder so.....
ich hab schon verschiedene directx sdk´s installiert und nix hat sich geändert!!!!
bitte helft mir!!! ich weis echt nicht weiter!!!!
ich habs jez mit nem beispiel von ner buch cd probiert...
es ändert sich nix!!!
wie kann das angehen...???':?:'
SO hier is der code... wie gesagt ich hab daran nix verändert!!!
es sind die quellcodes und die .exe vorhanden... die .exe funktionieren!!!

so hier is der code aus der cpp datei:

Quellcode

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# include "Trianglefan.h"

trianglefan::trianglefan()
    {
    dreieckbuffer = 0;
    linienbuffer = 0;
    }

trianglefan::~trianglefan()
    {
    if( dreieckbuffer)
        dreieckbuffer->Release();
    if( linienbuffer)
        linienbuffer->Release();
    }

void trianglefan::create( LPDIRECT3DDEVICE9 dev)
    {
    device = dev;
    device->CreateVertexBuffer( 6*sizeof(meinvertex), 0, MEINVERTEXFORMAT, D3DPOOL_MANAGED, &dreieckbuffer, NULL);
    device->CreateVertexBuffer( 18*sizeof(meinvertex), 0, MEINVERTEXFORMAT, D3DPOOL_MANAGED, &linienbuffer, NULL);
    }

void trianglefan::setup()
    {
    meinvertex *dv, *lv;
    int i;

    dreieckbuffer->Lock(0, 0, (void **)&dv, 0);
    linienbuffer->Lock(0, 0, (void **)&lv, 0);

    dv[0].pos = D3DXVECTOR3( 2, 1, 0);
    dv[1].pos = D3DXVECTOR3( 0, 0, 0);
    dv[2].pos = D3DXVECTOR3( 1, 2, 0);
    dv[3].pos = D3DXVECTOR3( 2, 2, 0);
    dv[4].pos = D3DXVECTOR3( 3, 2, 0);
    dv[5].pos = D3DXVECTOR3( 4, 1, 0);
    dv[0].color = D3DCOLOR_ARGB(255, 255, 0, 0);
    dv[1].color = D3DCOLOR_ARGB(255, 0, 255, 0);
    dv[2].color = D3DCOLOR_ARGB(255, 0, 0, 255);
    dv[3].color = D3DCOLOR_ARGB(255, 255, 0, 0);
    dv[4].color = D3DCOLOR_ARGB(255, 0, 255, 0);
    dv[5].color = D3DCOLOR_ARGB(255, 0, 0, 255);

    lv[0].pos = dv[0].pos;
    lv[1].pos = dv[1].pos;
    lv[2].pos = dv[0].pos;
    lv[3].pos = dv[2].pos;
    lv[4].pos = dv[0].pos;
    lv[5].pos = dv[3].pos;
    lv[6].pos = dv[0].pos;
    lv[7].pos = dv[4].pos;
    lv[8].pos = dv[0].pos;
    lv[9].pos = dv[5].pos;
    lv[10].pos = dv[1].pos;
    lv[11].pos = dv[2].pos;
    lv[12].pos = dv[2].pos;
    lv[13].pos = dv[3].pos;
    lv[14].pos = dv[3].pos;
    lv[15].pos = dv[4].pos;
    lv[16].pos = dv[4].pos;
    lv[17].pos = dv[5].pos;

    for( i = 0; i < 12; i++)
        lv[i].color = D3DCOLOR_ARGB(255, 0, 0, 0);

    dreieckbuffer->Unlock();
    linienbuffer->Unlock();
    }

void trianglefan::render()
    {
    device->SetRenderState( D3DRS_AMBIENT, 0xffffff);
    device->SetRenderState( D3DRS_AMBIENTMATERIALSOURCE, D3DMCS_COLOR1);

    device->SetFVF( MEINVERTEXFORMAT);
    device->SetStreamSource( 0, dreieckbuffer, 0, sizeof(meinvertex));
    device->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 4);
    device->SetStreamSource( 0, linienbuffer, 0, sizeof(meinvertex));
    device->DrawPrimitive( D3DPT_LINELIST, 0, 9);
    }


so dann kommt jez die headerdatei:

Quellcode

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
# ifndef TRIANGLEFAN_H
# define TRIANGLEFAN_H

# include <d3dx9.h>

# define MEINVERTEXFORMAT       (D3DFVF_XYZ | D3DFVF_DIFFUSE)

struct meinvertex
    {
    D3DXVECTOR3 pos;
    D3DCOLOR color;
    };

class trianglefan
    {
    private:
        LPDIRECT3DDEVICE9 device;
        LPDIRECT3DVERTEXBUFFER9 dreieckbuffer;
        LPDIRECT3DVERTEXBUFFER9 linienbuffer;
    public:
        trianglefan();
        ~trianglefan();
        void create( LPDIRECT3DDEVICE9 dev);
        void setup();
        void render();
        void lookatme( D3DXVECTOR3 &pos, D3DXVECTOR3 &look){ pos = D3DXVECTOR3(2, 1, -5); look = D3DXVECTOR3(0, 0, 1);}
    };

# endif


so und als ob das nich genug is dann auch noch die fehler(nur ein auszug):

1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winnt.h(3043) : warning C4103: "c:\programme\microsoft directx sdk (august 2006)\include\winnt.h": Ausrichtung wurde nach Einschließen des Headers geändert, möglicherweise fehlt "#pragma pack(pop)".
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winnt.h(3335) : warning C4103: "c:\programme\microsoft directx sdk (august 2006)\include\winnt.h": Ausrichtung wurde nach Einschließen des Headers geändert, möglicherweise fehlt "#pragma pack(pop)".
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winnt.h(3435) : warning C4068: Unbekanntes Pragma
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winnt.h(3440) : warning C4068: Unbekanntes Pragma
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1260) : error C2144: Syntaxfehler: 'void' sollte auf ';' folgen
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1260) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1261) : error C2144: Syntaxfehler: 'void' sollte auf ';' folgen
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1261) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1261) : error C2086: 'int DECLSPEC_NORETURN': Neudefinition
1> C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1260): Siehe Deklaration von 'DECLSPEC_NORETURN'
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1321) : error C2144: Syntaxfehler: 'void' sollte auf ';' folgen
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1321) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1321) : error C2086: 'int DECLSPEC_NORETURN': Neudefinition
1> C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1260): Siehe Deklaration von 'DECLSPEC_NORETURN'
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\rpcdce.h(366) : error C2144: Syntaxfehler: 'void' sollte auf ';' folgen
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\rpcdce.h(366) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\rpcdce.h(366) : error C2086: 'int DECLSPEC_NORETURN': Neudefinition
1> C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winbase.h(1260): Siehe Deklaration von 'DECLSPEC_NORETURN'
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\rpcdcep.h(89) : error C3646: "I_RpcAllocate": Unbekannter Überschreibungsspezifizierer
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\rpcdcep.h(89) : error C2091: Funktionsergebnis ist eine Funktion
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\rpcdcep.h(89) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\shellapi.h(129) : warning C4103: "c:\programme\microsoft directx sdk (august 2006)\include\shellapi.h": Ausrichtung wurde nach Einschließen des Headers geändert, möglicherweise fehlt "#pragma pack(pop)".
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\shellapi.h(265) : warning C4103: "c:\programme\microsoft directx sdk (august 2006)\include\shellapi.h": Ausrichtung wurde nach Einschließen des Headers geändert, möglicherweise fehlt "#pragma pack(pop)".
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winsock2.h(537) : error C3646: "inet_ntoa": Unbekannter Überschreibungsspezifizierer
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winsock2.h(537) : error C2091: Funktionsergebnis ist eine Funktion
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winsock2.h(537) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winsock2.h(537) : error C2733: Zweite C-Bindung für überladene Funktion 'DECLARE_STDCALL_P' nicht zulässig
1> C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winsock2.h(537): Siehe Deklaration von 'DECLARE_STDCALL_P'
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winsock2.h(546) : error C3646: "gethostbyaddr": Unbekannter Überschreibungsspezifizierer
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winsock2.h(546) : error C2091: Funktionsergebnis ist eine Funktion
1>C:\Programme\Microsoft DirectX SDK (August 2006)\Include\winsock2.h(546) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.

egal was ich ausprobiere immer kommen diese fehler!!
ich hab auch schon ma ein prog von meinem kumpel versucht bei mir zum laufen zu kriegen - aber die gleichen fehler - aber bei ihm funktionieren sie!!!!
er kann mir aber nich helfen

BITTTTTTTEEEEEEEEEEEE HELFT MIR....... nix funktioniert!! :?: :?:

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

19.03.2008, 16:43

Also ich würde mal sagen, dass du die libs nicht richtig eingebunden hast.

Für ein kleines Tutorial:

http://www.drakon.ch/Tutorial/Tutorial.html

Oder bestimmt auch im Forum irgendwo.

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

3

19.03.2008, 16:48

beruhig dich erstmal. solche sachen hat schon ejder einmal gehabt hier. kein grund zum durchdrehen.

erstmal grundsätzliches: wenn du nix veränert hast an den dx-dateien (wie du eigentlich auch deutlich gemacht hast), dann sollten da auch kein fehler drin sein.

erstmnal solltest überprüfen, ob du das psdk richtig installiert hast.

danach würde ich dir empfehlen, im zweifelsfalle immer das neuere dxsdk installieren.

danach überprüfer nochmal alles, ob überall die header richtig einbeunden sind usw.

beim fehlerposten wären die ersten fehler hilfreich, dass sieht so nach mitten drin rausgegriffen raus. am besten poste alle. nur nicht hier sondern da und gib den link:

http://www.rafb.net/paste/

EDIT: mist zu langsam ^^

4

19.03.2008, 17:09

ich hab weder an den headern noch was an dem quellcode geändert!!!
bei nem kumpel funktioniert der!!!! ohne probleme!!!!!!!
die fehler kommen aber immer.... versteht ihr immer.............
egal welches prog ich schreibe, welchen code ich ausprobiere... immer!!
und ich hab auch schon die aktuelle version installiert..
von märz 2008!!!

ach ja, das sind die ersten fehler!!!!

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

19.03.2008, 17:14

Kannst du den ein normales Projekt kompilieren?

btw.
Ein paar Ausrufezeichen mehr und dann geht das scho. ;)

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

6

19.03.2008, 18:23

Re: fehler in header

Zitat von »"Danny06"«

...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...
ich hab schon daraus gelesen das der fehler nicht in dem eigentlichen quellcode liegt, sondern in den headern von direct X!!!
z.b. winnt.h oder so.....

Nur damit du nicht die falschen Komponenten immer wieder verzweifelt neu installierst: winnt.h ist Teil vom Platform SDK und nicht vom DX SDK ;)

7

19.03.2008, 19:11

ich kann nur konsolenanwendungen kompilieren!
sonst is der rest immer voller fehlermeldungen!!!! :lol:

welches is denn die neueste version von Platform SDK??
kann es daran liegen? aba winnt.h liegt doch in ordner von dx sdk??
warum das, wenn es nich dazu gehört?

Terep

Frischling

Beiträge: 46

Wohnort: Region Hannover

  • Private Nachricht senden

8

20.03.2008, 09:53

Deine Ungeduld, die Konsole zu verlassen, verstehe ich. Geht mir ähnlich. Leider gibt es dann mehr Barrieren. Man kann sich nicht mehr wie in der Konsole frei bewegen. Selbst Buchlistings widersetzen sich. Kein Wunder, was da alles eingebunden werden muss. Die Buchlistings sind oft überaltert und müssen angepasst werden.
Hier erfolgreich sein zu wollen, heißt einfach nur eine Schneise zu schlagen, die zwar funktioniert aber die man nicht versteht.

Für mich habe ich jetzt folgende Lösung gefunden. Für 29.90 EURO gibt es das Buch Windows-Programmierung 5. Auflage von Charles Petzold. Dies Buch hat 1.350 Seiten und hat einen eindeutigen Schwerpunkt auf Window. Die ersten 100 Seiten habe ich durch und habe immer noch das Gefühl, hier richtig zu sein.
Dies mache ich in der Hoffnung, Kompetenz aufzubauen um nicht vor einer Blackbox zu stehen.
Da ich selbst noch ein Einsteiger bin, denke ich, es werden bestimmt noch andere nach mir posten, die dies entweder bestätigen oder auch nicht.

Terep :)
Avatar = „Odyssee im Weltraum“
Film von Stanley Kubrick (Warner Brothers)
nach dem Buch von Arthur C. Clarke.
It will becoming true ?!!

9

20.03.2008, 13:01

GESCHAFFT!!!!!!
:badgrin:
ES LEBT!!!
joa ich hab das prob gelöst!!
eigentlich war es ganz einfach: das mircosoft p sdk neu installiert----
-----und dann gings---
danke für die antworten!!!
das buch werd ich mir ma anschauen!!

10

20.03.2008, 13:07

Hängt bei deiner Tastatur die Taste mit dem Ausrufezeichen? :oops:

Werbeanzeige