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

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

1

25.08.2010, 19:18

Ich kann Direct3DEnum nicht erstellen

Hallo Leute,

ich habe ein Problem mit der Direct3DEnum Datei.

Ich habe zu erst ein neues Projekt mit der Direct3DEnum Datei erstellt und dann habe ich die Ressourcendatei "Allgemeines.rc" hinzugefügt. Außerdem habe ich die anderen .cpp und .h Dateien aus dem Ordner Allgemeines der CD hinzugefügt.
Am Anfang der Datei habe ich noch ein #include "E:\CD.exe\Beispiele\Allgemeines\Allgemeines.rc" geschrieben.

Wenn ich es jetzt allerdings versuche zu erstellen, erhalte ich 17 Fehlermeldungen. Viele davon beziehen sich auf das selbe.

Folgende Fehlermeldungen erscheinen:
  1. error C2065: 'g_pDirect3DParameters': nichtdeklarierter Bezeichner (Zeilen: 974, 975, 976, 978, 979, 1022 | Datei: Direct3DEnum.cpp)
  2. error C2143: Syntaxfehler: Es fehlt ';' vor 'Konstante (Zeile: 21 | Datei: allgemeines.rc)
  3. error C2227: Links von "->DeviceType" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden. (Zeile: 975 | Datei: Direct3DEnum.cpp)
  4. error C2227: Links von "->dwFlags" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden. (Zeilen: 976, 978, 979 | Datei: Direct3DEnum.cpp)
  5. error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. (Zeile: 21 | Datei: allgemeines.rc)
  6. IntelliSense: Diese Deklaration hat keine Speicherklasse oder keinen Typspezifizierer. (Zeile: 21 | Datei: allgemeines.rc)
  7. IntelliSense: Es wurde ein ";" erwartet. (Zeile: 201 | Datei: allgemeines.rc)

Ich benutze Visual Studio 2010 und mein Betriebssystem ist Windows 7 64 Bit.

Habe ich vielleicht nur vergessen etwas bei Visual Studio an den Einstellungen zu ändern?

MfG

2

25.08.2010, 19:20

allgemeines.rc brauchst du nicht zu inkludieren.
fka tm

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

3

25.08.2010, 19:59

Ok, habe es jetzt ohne die zusätzliche Zeile gemacht.

Sind nur noch 2 Fehler. So nebenbei, warum werden es dadurch eigentlich weniger Fehler?

Folgende Fehler:
  1. error LNK1120: 1 nicht aufgelöste externe Verweise.
    (Zeile: 1 | Datei: Direct3DEnum.exe)
  2. error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup".
    (Datei: "c:\Users\Daniel\documents\visual studio 2010\Projects\Direct3DEnum\Direct3DEnum\MSVCRTD.lib(crtexew.obj)"

4

25.08.2010, 20:12

Warum weniger Fehler?
Weil du einen behoben hast. ;)
Manchmal reicht ein Fehler, der eine Menge (u.U. unsinnige) Folgefehler auslöst.

1. LNK1120: Wie lautet die komplette Fehlerbeschreibung?
2. Möglicherweise falsche Projektkonfiguration. Windows-Anwendung statt Konsole, oder vice versa.
Am besten neues Projekt mit dem Assistenten erstellen.
fka tm

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

5

25.08.2010, 21:06

Danke für die schnelle Antowort.

Habe jetzt ein neues Projekt erstellt. Hatte vorher eine Windows-Anwendung und habe jetzt eine Konsolen-Anwendung erstellt. Woher könnte ich in diesem Programm z.B. erkennen ob es eine Konsolen- oder Windows-Anwendung ist?

Allerdings habe ich jetzt ein anderes Problem:
Beim Inkludieren im Quelltext sagt er, dass "Direct3D.h" und "Allgemeines.h" nicht gefunden werden kann.
Ich habe diese Dateien als Headerdateien am Projekt angehängt.

Außerdem gibt es noch einige IntelliSense-Fehler.

MfG

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »rikiel« (25.08.2010, 21:55)


6

25.08.2010, 22:01

Im Programm siehst du für gewöhnlich am Einstiegspunkt des Betriebssystems (WinMain, main, _tmain...), um welchen Anwendungstyp es sich handelt.
In den Eigenschaften des Projekts gibts ebenfalls spezifische Einstellungen/Schalter.

Zu deinem Problem:

Entweder du verwendest beim Include den vollständigen Pfad zu den Header-Dateien, oder fügst den Pfad in den Projekteigenschaften hinzu.
Projekteigenschaften - C++ - Allgemein -> Zusätzliche Includeverzeichnisse
fka tm

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

7

25.08.2010, 22:12

Danke für die Antwort.
"Allgemeines.h" habe ich jetzt schon includiert, allerdings kann ich die Datei "Direct3D.h" generell nicht finden. Ich habe meinem Computer bereits danach durchsucht und auch im DirectX-Verzeichniss nichts gefunden.
Kann es sein, dass die Direct3DEnum.h Datei gemeint ist?

Dadurch hätte ich dann nur noch 2 Fehler:
  1. error LNK1120: 1 nicht aufgelöste externe Verweise (Datei: Direct3DEnum.exe)
  2. error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup". (Datei: MSVCRTD.lib(crtexe.obj)

MfG

8

25.08.2010, 23:38

1. Hatte ich oben schon angefragt
2. Was steht in den Projekteigenschaften - Linker -System -> Subsystem?

Vermutlich hast du beim Neuerstellen .net - Konsolenanwendung gewählt.
Windows Konsole wäre richtig.
fka tm

rikiel

Frischling

  • »rikiel« ist der Autor dieses Themas

Beiträge: 31

Beruf: Schüler

  • Private Nachricht senden

9

26.08.2010, 02:00

  1. Was meinst du mit vollständige Fehlerbeschreibung? Ich habe bereits gegoogelt, aber nichts passendes gefunden.
    Hier mal das was VS mir ausgibt:
    Beschribung: error LNK1120: 1 nicht aufgelöste externe Verweise.
    Datei: c:\users\daniel\documents\visual studio 2010\Projects\Direct3DEnum Konsole\Debug\Direct3DEnum Konsole.exe
    Zeile: 1
    Spalte: 1
    Projekt: Direct3DEnum Konsole

  2. Das Subsystem ist folgendes: Konsole (/SUBSYSTEM:CONSOLE)

Ich habe eine "Win32-Konsolenanwendung" erstellt. Sollte eine Windows Konsole sein, oder?
Ich habe früher Visual Studio nie als Standardkompiler benutzt (bisher nur Dev-C++) und bringe es mir jetzt mehr oder weniger selber bei, mit der Hilfe vom Forum :)

MfG

10

26.08.2010, 09:23

Windows Konsole ist Ok! ;)

Bei der Fehlermeldung würde mich interessieren, was er nicht findet, und wo der Fehler auftritt.
Ist das immer noch der aus Post #7 ?

Zeig bitte mal die main-Funktion.
fka tm

Werbeanzeige