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.09.2012, 09:07

D3D9.LIB zur Projrkteinstellungen als Bibliothek hinzufügen.

Vermutlich werden mich jetzt alle auslachen, aber mit der Suchmaschine finde ich zu dem Thema nix. :ninja:

Auf Seite 110 beim ersten Beispielprogramm wird gesagt man soll D3D9.LIB und DXERR9.LIB in den projekteinstellungen als Bibliotheksdateien mitgelinkt werden.

Ich habe Microsoft Visual C++ 2010 Express und keine AHnung wie man das macht. :whistling:

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

10.09.2012, 10:26

Über das Menü Project > Properties (Alt + F7 bzw. auch Rechtsklick auf das Projekt im Solution Explorer > Properties). Im folgenden Dialog findest du dann unter Configuration Properties > Linker > Input die Additional Dependencies, wo du d3d9.lib und dxerr9.lib einträgst.

Ich denk, ich sollte dich an dieser Stelle aber auf das hier aufmerksam machen: Software-Update: Alle Projekte aus dem Buch "3D-Spieleprogrammierung" für Visual C++ 2010 & neues DirectX-SDK

3

10.09.2012, 11:21

Danke für die Antwort.

Ich denke ich habe es richtig eingefügt...

http://www.apload.de/images-i195024b0j34j.png

Bekomm beim Kompalieren aber trotzdem folgende Fehlermeldung:

DirectX prüfen.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_Direct3DCreate9@4" in Funktion "_WinMain@16".

Quelltext:

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
#include <Windows.h>
#include <stdio.h>
#include <d3d9.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char* pcCmdLine, int iShowCmd)

{
    PDIRECT3D9 pD3D = Direct3DCreate9(D3D_SDK_VERSION);
    if(!pD3D)
    {
        MessageBox(NULL, "Fehler beim erzeugen der Dirct3D-Schnittstelle", "Fehler", MB_OK | MB_ICONEXCLAMATION);
        return 1;
    }

    int iNumAdapters = pD3D->GetAdapterCount();

    D3DADAPTER_IDENTIFIER9* pAdapters = new D3DADAPTER_IDENTIFIER9[iNumAdapters];

    for(int iAdapter = 0; iAdapter < iNumAdapters; iAdapter++)
    {
        if(FAILED(pD3D->GetAdapterIdentifier(iAdapter, 0, &pAdapters[iAdapter])))
        {
            MessageBox(NULL, "Adapterinformationen konnten nicht abgefragt werden!", "Fehler", MB_OK | MB_ICONEXCLAMATION);
            pD3D->Release();
            delete[] pAdapters;
            return 1;
        }

        char acAdapterInfo[1024];
        sprintf(acAdapterInfo,  "ADAPTER-ID: %d\n"
                                "Name: %s\n"
                                "TREIBER: %s\n"
                                "nTreiberversion: %d",

                                iAdapter,
                                pAdapters[iAdapter].Description,
                                pAdapters[iAdapter].Driver,
                                pAdapters[iAdapter].DriverVersion);

        MessageBox(NULL, acAdapterInfo, "Adapter gefunden", MB_OK | MB_ICONINFORMATION);
    }

    pD3D->Release();
    delete[] pAdapters;

    return 0;
}

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

10.09.2012, 11:23

Du hast es bei Zusätzlich Bibliotheksverzeichnisse eingetragen. ;)

Die Einstellung, die du suchst, findest du unter "Eingabe" ganz oben...

5

10.09.2012, 11:44

Ah ok. :D

Ok schaut jetzt so aus:

http://www.apload.de/images-i195026b30m2m.png

Nun spuckt er das aus:
>LINK : fatal error LNK1104: Datei "DXERR9.lib" kann nicht geöffnet werden. :S

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

10.09.2012, 11:53

Vermutlich weil du ein neueres DX SDK hast, dort heißt die dxerr9.lib nichtmehr dxerr9.lib, sondern nurmehr dxerr.lib und auch die ganzen DXErr Funktionen haben keine 9 mehr im Namen. Aber im Moment brauchst du die dxerr.lib wohl sowieso nicht in deinem Programm, oder?

7

10.09.2012, 12:09

dxerr.lib kennt er auch nicht. :D

Aber hast recht da es nicht genutzt wird hab ichs rausgeworfen und nun funzt das Programm. Etwas unwhol fühl ich mich dabei schon wird immerhin vom Buch emfpohlen beides zu intialisieren. :ninja:

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

10.09.2012, 12:26

Die dxerr.lib ist veraltet und existiert ab Windows 8 überhaupt nicht mehr. Sie enthielt nur ein paar Hilfsfunktionen, mit denen man DirectX Fehlercodes in entsprechenden Feherbeschreibungstext umwandeln konnte. Das sollte nun aber auch direkt mit der WinAPI Funktion FormatMessage() gehen, falls du das mal brauchst... ;)

9

10.09.2012, 15:40

Ok danke, bin da jetzt weitergekommen und programm läuft. 8o

Dummerweise gibt es gleich beim nächsten Beispiel das nächste Problem. :thumbdown:

Geht um das Beispiel des ersten eigenen Fensters. Fängt an das er meckert das er ja die Tribase.h z.B. garnicht hat. In Erinnerung an den Tip habe ich das aktualisierte Paket runtergeladen, habe es entapckt, aber wenn ich nun eines der Beispiele ausführen will kommt:

http://www.apload.de/images-i195037b47qov.png

:wacko:

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

10.09.2012, 15:42

Hast du die TriBase auch kompiliert und alle Pfade (Include, Library) entsprechend gesetzt?

Werbeanzeige