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

10.04.2006, 14:47

Brauhce bitte Hilfe bei Bsp aus Kapitel 2.4.7

Hallo :)

also einige kennen vl das beispiel.

es soll ein fenster erstellen, aber bevor es das tut, wird mit hilfe von direct3d abgefragt welche größe etc. das fesnter haben soll.

tja das projekt brauch 2 ressourcen dateien und da die nicht beide gleichzeitig aktiv sein können (da gibts ne fehlermedlung) steht im buch:

Zitat

fügen sie die zeile #include "..\..\Allgemeines\Allgemeines.rc" ganz an den anfang ihrer eigenen ressourcendatei ein, falls sie eine benutzen


1) das krig ich schon mal nicht zusammen, deswegen wollt ich mal fragen, ob das so wie ich das mache auch geht.

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
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
82
83
/*  Erstes Fenster
 *  Version: 1.0
 *  Autor: Simon Klausner */

#include <Windows.h>
#include <TriBase.h>
#include "InitWindow.h"
#include "Direct3DEnum.h"
#include "InitDirect3D.h"
#include "Resource.h"

    //Renderfunktion

    tbResult Render(float fNumSecsPassed)
    {
        return TB_OK;
    }

    //Movefunktion

    tbResult Move(float fNumSecsPassed)
    {
        return TB_OK;
    }

//****************************************************************************************************


//Hauptprogramm

//Erstellt Fenster und Nachrichtenschleife


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char* pcCmdLine, int iShowCmd)
{
    //Engine Initialisierung

    tbInit();

    //Direct 3D Optionen abfragen

    SDirect3DParamteres Direct3DParameters;
    tbResult Result = GetDirect3DParameters(&Direct3DParameteres);
    if(Result == TB_ERROR)
    {
        MessageBox(NULL, "Fehler beim Abzählen.", "Fehler", MB_OK | MB_ICONEXCLAMATION);
        tbExit();
        return 1;
    }
    else if(Result == TB_CANCELED)
    {
        tbExit();
        return 0;
    }

    

    //Fenster initialisieren mit gewähltem Modus

    if(InitWindow   (Direct3DParameters.VideoMode.Width,
                     Direct3DParameters.VideoMode.Height,
                     "Circle of the Druids", LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1))))
    {
        MessageBox(NULL, "Fehler beim Erstellen des Fensters.", "Fehler", MB_OK | MB_ICONEXCLAMATION);
        tbExit();
        return 1;
    }

    //Direct3D mit abgefragten Einstellungen initialisieren

    if(InitDirect3D(&Direct3DParameters, g_hWindow))
    {
        MessageBox(NULL, "Fehler beim Initialisieren von Direct3D.", "Fehler", MB_OK | MB_ICONEXCLAMATION);
        ExitWindow();
        tbExit();
        return 1;
    }



    //Nachrichtenschleife

    tbDoMessageLoop(Render, Move);

    //Fenster und D3D herunterfahren

    ExitDirect3D();
    ExitWindow();

    //Engine herunterfahren

    tbExit();

    return 0;
}


einfach in der quellcodedatei per #include einfügen?

scheint irgendwie zu gehen, weil der fehler mit den SDirect3DParamteres verschwindet, aber jetzt hab ich folgenden fehler vorliegen :(

Zitat

--------------------Konfiguration: Fenster mit D3D - Win32 Debug--------------------
Kompilierung läuft...
Fenster.cpp
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(35) : error C2065: 'SDirect3DParamteres' : nichtdeklarierter Bezeichner
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(35) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Direct3DParameters'
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(35) : error C2065: 'Direct3DParameters' : nichtdeklarierter Bezeichner
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(36) : error C2065: 'Direct3DParameteres' : nichtdeklarierter Bezeichner
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(52) : error C2228: Der linke Teil von '.VideoMode' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(52) : error C2228: Der linke Teil von '.Width' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(53) : error C2228: Der linke Teil von '.VideoMode' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(53) : error C2228: Der linke Teil von '.Height' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(54) : error C2065: 'IDI_ICON1' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.

Fenster.obj - 9 Fehler, 0 Warnung(en)


vermutlich wird irgendetwas in das projekt nicht eingefügt, weil ich bezweifle, dass ein ";" fehlt in den dateien von direct3d :)

falls ihr diese infos auch noch braucht:
-tribased.lib ist im linker
-d3d9.lib ebenfalls
-dxerr9.lib ebenso
-die ressourcedateien sind im projekt hinzugefügt
-die ganzen wichtigen cpp und headerdateien sind im ordner des projekts und im projekt selbst auch hinzugefügt






also hilfe bitte :)
ich denk es liegt trotzdem an den ressourcedateien, aber weiß es eben ned :(

mfg
Drac

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

2

10.04.2006, 15:13

Wenn es dir nur um das Projekt geht, kopier es dir einfach von der CD. Der lerneffekt ist zwar gleich null, aber wenn du weiterkommen willst, wäre das eine Möglichkeit. Ansonsten - hast du die Resource.h hinzugefügt?
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

3

10.04.2006, 15:18

ne ich will die beispiele schon selbst rausfinden und nicht einfach alles als gegeben akzeptieren :)

C-/C++-Quelltext

1
#include "Resource.h" 

und hinzugefügt ist sie auch jo.

daran liegts also schon mal ned^^

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

10.04.2006, 17:13

Re: Brauhce bitte Hilfe bei Bsp aus Kapitel 2.4.7

Zitat von »"Draculark"«

C-/C++-Quelltext

1
#include "Allgemeines.rc"

Das geht nicht.
RC-Dateien beinhalten keinen C++-Code.

5

10.04.2006, 21:09

jo sowas hab ich mir gedacht, aber der tipp aus deinem buch:

am anfang meiner eigenen ressourcedatei die zeile #include ....Allgemeines.rc einbinden weiß ich ned wie das gehen soll...

kann mir wer erklären wie das gehen soll?

weil dann mach ich mir eine ressource datei, die die beiden anderen ressourcedateien einbindet und brauch dann in meinem hauptprogramm nur meine eigenserstellte ressourcedatei einbinden.

thx schonmal

Drac

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

6

11.04.2006, 07:40

Ich hab das Buch auch neulich an dieser Stelle gelesen, dass ist mir aber nicht aufgefallen. Du musst die .rc dem Projekt hinzufügen und nicht includen. Das machst du wie mit den Quellcodedateien. Bei VS2005 EXPRESS wird das soweit ich weiss nicht gehen, da du dort keine Ressourcedateien nutzen kannst.
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

7

11.04.2006, 08:13

Eine RC ist eine Resource, wo u.a. Dialoge, Menüs etc. drin sind. Diese RC Dagteien müssen als Resource dem Projekt hinzugefügt werden. (Resource hinzufügen).

Wenn man eine Resource erstellt wird automatisch eine weitere Datei, neben der .RC erstellt. Diese wird meist resource.h genannt. Diese resource.h musst du in deinen Code includeren mit #include, nicht die .rc

8

11.04.2006, 09:39

hm ich checks weiterhin ned.

also was ne ressource datei ist versteh ich jetzt, danke mal dafür :)
aber ich kann trotzdem nur maximal eine im projekt "aktiv" lassen. wen ich eine zweite (oder mehrere hinzufüge) werden die "deaktiviert" sozusagen.

und dadurch bekomm ich immer folgende fehler:

Zitat

--------------------Konfiguration: Fenster mit D3D - Win32 Debug--------------------
Kompilierung läuft...
Fenster.cpp
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(35) : error C2065: 'SDirect3DParamteres' : nichtdeklarierter Bezeichner
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(35) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Direct3DParameters'
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(35) : error C2065: 'Direct3DParameters' : nichtdeklarierter Bezeichner
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(36) : error C2065: 'Direct3DParameteres' : nichtdeklarierter Bezeichner
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(52) : error C2228: Der linke Teil von '.VideoMode' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(52) : error C2228: Der linke Teil von '.Width' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(53) : error C2228: Der linke Teil von '.VideoMode' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(53) : error C2228: Der linke Teil von '.Height' muss eine Klasse/Struktur/Union sein
C:\Sonstiges\Projekt 3D Spieleprogrammierung\Erstes Fenster\Fenster.cpp(54) : error C2065: 'IDI_ICON1' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.

Fenster.obj - 9 Fehler, 0 Warnung(en)


das liegt, aber fix nur daran, weil ich ned weiß, wie ich mehrere ressource dateien aktiv ins projekt einbinden kann :(

mfg
Drac

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

9

11.04.2006, 09:47

Wieso brauchst du mehrere Resourcden Dateien? In einer Resoourcendatei sind alle deinen Resourcen definiert u.a. Icons, Menüs u.s.w.

Es mach kaum Sinn mehrere zu haben.

.... Includier mal in deinem Projekt die von VS erstellte resource.h!

Er kann bei dir SDirect3DParamteres nicht finden, ich weiss nun nicht was du zusammengecodet hast, aber bist du sicher das du das überhaupt deklariert hast?

10

11.04.2006, 10:34

jo das mit nur einer resource datei hab ich schon rausgefunden.

nur weiß ich ned woher ich das direct3d fenster hernehmen soll.

hab also die ressource datei von der cd runterkopiert mit der entsprechenden resource.h datei.

beide wieder ins projekt integriert, aber trotzdem dieseleben fehler.

btw. mein code steht oben und das SDirect3DParamteres wird ja in einer der anderen dateien deklariert (die auf der cd im ornder allgemein waren) afaik.

edit:

omg hab mich vertippt :)
statt ParamEters hab ich Paramters geschrieben^^

also der fehler wäre behoben, aber etz hab ich auf einmal folgende gekrigt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
--------------------Konfiguration: D3D Abzählung - Win32 Debug--------------------
Linker-Vorgang läuft...
D3DAbzählung.obj : error LNK2001: Nichtaufgeloestes externes Symbol "enum tbResult __cdecl ExitDirect3D(void)" (?ExitDirect3D@@YA?AW4tbResult@@XZ)
D3DAbzählung.obj : error LNK2001: Nichtaufgeloestes externes Symbol "enum tbResult __cdecl ExitWindow(void)" (?ExitWindow@@YA?AW4tbResult@@XZ)
D3DAbzählung.obj : error LNK2001: Nichtaufgeloestes externes Symbol "enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)
D3DAbzählung.obj : error LNK2001: Nichtaufgeloestes externes Symbol "struct HWND__ * g_hWindow" (?g_hWindow@@3PAUHWND__@@A)
D3DAbzählung.obj : error LNK2001: Nichtaufgeloestes externes Symbol "enum tbResult __cdecl InitWindow(int,int,char *,struct HICON__ *)" (?InitWindow@@YA?AW4tbResult@@HHPADPAUHICON__@@@Z)
D3DAbzählung.obj : error LNK2001: Nichtaufgeloestes externes Symbol "enum tbResult __cdecl GetDirect3DParameters(struct SDirect3DParameters *)" (?GetDirect3DParameters@@YA?AW4tbResult@@PAUSDirect3DParameters@@@Z)
Debug/D3D Abzählung.exe : fatal error LNK1120: 6 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

D3D Abzählung.exe - 7 Fehler, 0 Warnung(en)


edit2:

so fragt nicht warum, aber etz gehts oO :)

mystisch^^

thx jedenfalls fürs helfen :)

Werbeanzeige