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

15.07.2003, 18:49

VS .NET und DirectX9

Hallo,

erstmal Lob an den Autor, das Buch gefällt mir sehr gut. Einige kleine Dinge würde ich noch verbessern, wenn ich das Buch durchgelesen habe, werde ich Verbesserungsvorschläge noch hier posten.

Aber nun kurz zu meiner Frage:

Ich benutze das Visual Studio .NET, habe das DX9 SDK installiert und ein neues Projekt erstellt (Win32 anwendung, leeres Projekt). Welche Einstellungen muss ich nun an VS .NET und an meinem Projekt vornehmen, damit ich DirectX benutzen kann? Es kommt z.b. ein Fehler, wenn ich die datei <d3d9.h> includen will (natürlich kommt das daher, daß ich bisher noch keine libs zum projekt hinzugefügt habe).

Ich weiß, daß im Buch steht, wie die libs einzubinden sind, leider will es irgendwie nicht funktionieren bei mir. Außerdem möchte ich rein DirectX benutzen, ohne die libs der TriBase Engine zu benutzen.

Ich würde mich freuen, wenn mir jemand kurz die wenigen Schritte aufschreiben würde, wie ich alle Objekte von DX9 in VS .NET benutzen kann.


Vielen Dank

2

15.07.2003, 19:00

Die Header kannst du auch ohne libs einbinden.

Allerdings musst du erst den Pfad der DXHeader dem Compiler sagen:
Extras->Optionen->Projects->VC++-Verz.->Includedateien.
Das selbe machst du dann mit dem lib-Verzeichnis.

Die libs kannst du dann so einbinden

Quellcode

1
#pragma comment(lib, "d3d9.lib")

Anonymous

unregistriert

3

16.07.2003, 21:26

Hallo,

danke für Deine Antwort. Sollte es nicht auch ohne diese #pragma Zeile gehen? Ich habe in den Beispielen im Buch nie etwas darüber gelesen.

Die D3D9.h kann ich nun ohne Probleme einbinden. Mir fehlt aber jetzt z.B. die Funktion "Direct3DCreate9" - dafür habe ich hier nur "Direct3DRMCreate" - kann mir jemand sagen, was das ist, bzw. wie ich es richtig mache, daß ich alle Direct3D Objekte und Funktionen zur Verfügung habe?


Vielen Dank

4

16.07.2003, 22:13

Das liegt daran, das David das immer über die Linkerbefehlszeile in einer VC++-Einstellung macht. Ich finde das aber so schöner.

Was meinst du mit fehlt????

Anonymous

unregistriert

5

17.07.2003, 08:09

"Fehlt" heißt, mir steht diese Funktion einfach nicht zur Verfügung. Wenn ich im Code "Direct" und dann STRG+SPACE drücke, sehe ich nur "Direct3DRMCreate", aber kein "Direct3DCreate9", und das verstehe ich einfach nicht :-/

Tracert

Treue Seele

Beiträge: 108

Wohnort: Braunschweig

Beruf: Student

  • Private Nachricht senden

6

17.07.2003, 11:05

Hi!

Schonmal einfach ohne Vervollständigung versucht? Also einfach die Funktion per Hand komplett hinschreiben? Ich habe bisher nur mit VC++6 gearbeitet, nicht mit .net und ich weiß dass DORT eigentlich gar keine Auto-Vervollständigung mit den DX-Funktionen funktioniert (bei mir zumindest). Keine Ahnung inwieweit das bei .net funktionieren sollte.

Trotzdem, versuch einfach mal die Funktion gaanz per Hand zu schreiben und teste, ob es funktioniert.

TR

7

17.07.2003, 16:40

Die Autovervollständigung ist nur eine Hilfe.
Glaubst du das das in den libs drinsteht :-D .

Nein, verlass dich nicht auf die Autovervollständigung. Programmier einfach!

Anonymous

unregistriert

8

18.07.2003, 14:52

Das habe ich natürlich auch schon probiert.

Wenn ich die #pragma Zeile verwende (#pragma comment(lib, "d3d9.lib")
), kommt folgender Fehler :


"Microsoft Visual Studio .NET\Vc7\include\useoldio.h(29) : warning C4995: '_OLD_IOSTREAMS_ARE_DEPRECATED': der Name, der als #pragma markiert war, wurde verworfen"

Ausserdem, da die Direct3DCreate MEthode nicht gefunden wurde, kommt noch :

"error C2065: 'Direct3DCreate' : nichtdeklarierter Bezeichner"


Hat jemand eine Idee?

9

18.07.2003, 15:53

Es heißt ja auch Direct3DCreate9!

Ist das eine Datei von dir: Microsoft Visual Studio .NET\Vc7\include\useoldio.h?

Zeig mal den Code!

Anonymous

unregistriert

10

18.07.2003, 22:43

Das gibts doch nicht, tatsächlich habe ich die "9" vergessen - das ist mir jetzt erstmal peinlich :-)

Allerdings verstehe ich nicht, warum es nicht als Autovervollständigen zur Verfügung steht. Ist es nicht irgendwie machbar? Immerhin sind Konstanten wie D3D_OK ja auch in dieser Pop-Up Liste zu sehen.

Was das "Warning" angeht, ja es ist von "Microsoft Visual Studio .NET\Vc7\include\useoldio.h".

Werbeanzeige