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

19.02.2004, 21:21

Eine Frage von der Lieblingsnervensäge -> Fehler beim com

Jep ihr habt richtig gelesen - ich bin es wieder :-)

in einer freien minute habe ich mal das listing 2.15 abgetippt.
beim compilieren bekomme ich immer folgende meldeung:

Kompilierung läuft...
d3d.cpp
Linker-Vorgang läuft...
d3d.obj : error LNK2001: Nichtaufgeloestes externes Symbol _Direct3DCreate9@4
Debug/d3d.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

d3d.exe - 2 Fehler, 0 Warnung(en)



bestimmt wurde diese frage schon sehr oft gestellt - könnte sie mir jemand trotzdem nochmal beantworten oder mir einen link geben??

Und noch eine Frage so spät am abend:
an dieser stelle geht es um adapter. Wie kann ich mir einen adapter genau vorstellen bzw. was ist es genau??


ich weiß viele personen im board regen sich jetzt über meine fragen auf oder bekommen ein lachanfall, aber ich freue mich über jede ernste antwort

einen guten abend noch


mfg der dude ;-)

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

2

19.02.2004, 21:31

Da ist kein Fehler beim COM (wäre ja noch schöner ;), im gegenteil ;) Du hast vergessen zu Linken:

#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib, "dxguid.lib")

Anonymous

unregistriert

3

19.02.2004, 21:35

Vielen dank an Patrick für die schnelle antwort.

könntest du mir auch noch eine antwort auf die zweite frage geben???


mfg der dude :-)

Anonymous

unregistriert

4

19.02.2004, 21:47

p.s wie meinst du das mit dem linken??

einfach oben in der datei einfügen ???

mfg der Dude ;-)

unsigned int

Alter Hase

Beiträge: 512

Wohnort: Bonn

Beruf: Schüler; C#-Programmierer in einer kleinen Firma

  • Private Nachricht senden

5

19.02.2004, 21:54

entweder bindest du diese libs in den einstellungen ein oder fügst sie am codeanfang ein - is doch kein thema ;)
"Tu es. Oder tu es nicht. Es gibt kein Versuchen."
StarWars

www.tron2d.de.vu

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

6

19.02.2004, 22:54

Hi,

die 3 code-zeilen die ich gepostet habe einfach in deine global.h oder main.h oder sonst was reinkopieren (unter #include) und fädisch, Adapter sind Deine Grafikkarten die im PC sind.

Wie man das richtig macht mit dem Linken siehe hier:

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
// Datei:           Types.h
// //////////////////////////////////////////////////////////////////////////////////
// Autor:           Patrick Ullmann                             © Xarent Interactive
// Erstellt:        01.02.04
// Änderungen:     01.02.04    (Patrick)   Datei erstellt
// //////////////////////////////////////////////////////////////////////////////////
// Beschreibung:    Diverse Dateitypdefinitionen und Makros

#ifndef _TYPES_H_
#define _TYPES_H_

// I N C L U D E S //////////////////////////////////////////////////////////////////
    // Bei Win32 muss die Windows.h includiert werden!
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#endif

    // Standardheader für das Programm (ACHTUNG: Alle _ohne_ Endung *.h)
#include <string>
#include <sstream>
#include <iostream>

    // DirectX Header
#include <d3d9.h>
#include <d3dx9.h>

// L I N K E R //////////////////////////////////////////////////////////////////////
    // Windows kann diese Libs selbst linken, sonst muss man manuel dran.
#ifdef _WIN32
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#endif

// D E F I N I T I O N E N //////////////////////////////////////////////////////////
    // PI ist sehr wichtig!!
const float PI = 3.1415926535897932f;

    // Bei Win32 muss man die definition von main aufheben wegen SDL
#ifdef _WIN32
#undef main
#endif

// M A K R O S //////////////////////////////////////////////////////////////////////
#ifndef PROTOKOLL
#define PROTOKOLL CLog::getInstance()
#endif

#ifndef VIDEO
#define VIDEO CVideo::getInstance()
#endif

#ifndef KEYBOARD
#define KEYBOARD CKeyboardManager::getInstance()
#endif

#ifndef TEXTUREMANAGER
#define TEXTUREMANAGER CTextureManager::getInstance()
#endif

#ifndef GAMEMANAGER
#define GAMEMANAGER CGameManager::getInstance()
#endif 

// P R O T O T Y P E N //////////////////////////////////////////////////////////////
    // Noch keine

// F U N K T I O N E N //////////////////////////////////////////////////////////////
    // Noch keine

// S T R U K T U R E N //////////////////////////////////////////////////////////////
    // Noch keine

#endif


Achja, bin gerade nicht vor ICQ, weis aber das du mich angeschrieben hast :) Hab dich geadded, ich schreib dich morgen mal an :) geht grade nicht ;)

7

20.02.2004, 17:16

Re: Eine Frage von der Lieblingsnervensäge -> Fehler beim

Zitat von »"Der Dude"«


Und noch eine Frage so spät am abend:
an dieser stelle geht es um adapter. Wie kann ich mir einen adapter genau vorstellen bzw. was ist es genau??
)


ein Adapter ist eine Grafikkarte. Also bei der createDevuce Methode gibst du an, auf welchem Adapter(=Grafikkarte) die Operationen wie TnL oder das Rendering passieren soll
In den meisten Fällen hat ein PC nur eine Grafikkarte. Deshalb setzt man meistens, wenn ein Adapter gefragt ist D3DADAPTER_DEFAULT.Das ist die primäre Grafikkarte von Windows. Es gibt dann auch sekundäre GraKas, tertiäre GraKas etc.

Das ist auch ein Vorteil(oder auch Nachteil) von DirectX gegenbüber zu OpenGL. Bei OpenGL geschieht die Enumeration durch den Treiber, bei DirectX hat der Programmierer selbst die Möglichkeit dies zu tun.
Do, ut des!
Ceterum censeo, carthaginem delendam esse

Werbeanzeige