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

06.12.2004, 18:07

nichtaufgeloestes externes Symbol _Direct3DCreate9@4

hi
ich hab probleme, eines der ersten beispiele zu kompilieren
(Ein konsolenprogramm schreiben, das alle direct3d-adapter auflistet)

Quellcode

1
2
3
4
5
6
7
8
Kompilierung läuft...
main.cpp
Linker-Vorgang läuft...
main.obj : error LNK2001: Nichtaufgeloestes externes Symbol _Direct3DCreate9@4
Debug/EnuM_Adapter.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

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


ich hab
bei den verzeichnissen für include-dateien
C:\Programme\Microsoft DirectX 9.0 SDK (Summer 2004)\Include
und bei den verzeichnissen für bibliotheksdateien
und C:\Programme\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib
hinzugefügt

PD

unregistriert

2

06.12.2004, 21:07

[Achtung: Unqualifiziertes Posting, antwort auf Basis einer Schätzung]

Hast du die Bibliothek auch gelinkt? Also nicht nur das Verzeichnis hinzufügen ^^

Anonymous

unregistriert

3

06.12.2004, 21:12

Projekt -> Einstellungen... -> Linker -> Objekt-/Bibliothek-Module:
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

das meinst du doch oder??
welche datei muss ich dazulinken?

Anonymous

unregistriert

4

06.12.2004, 21:16

d3d9.lib dxerr9.lib
sind das die einzigen dateien, die ich linken muss?

5

06.12.2004, 21:42

Das steht im Buch auf den ersten Seiten irgendwo, glaub ich. Sonnst installiert der das bei der SDK installation eigentlich mit, bei mir glaub ich zumindest!

Anonymous

unregistriert

6

07.12.2004, 13:43

ja bei den verzeichnissen werden die neuen verzeichnisse von directx
und tribase hinzugefügt aber in einem neuen projekt muss ich immer die bibliotheksdateien mit einbinden

7

08.12.2004, 15:35

Bei mir brauch ich dir nur unter Window ->Option->Resource eintragen, aber als erstes und schon läuft alles wie geschmiert!

Anonymous

unregistriert

8

08.12.2004, 15:47

ja fehler findet der compiler keine mehr aber da isn runtime-error (Direct3D_Adapter_Aufzählung.exe hat ein Problem festgestellt und muss beendet werden.)
:(
und ich hab keine ahnung was ich falsch gemacht habe

der programm-code:

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
#include <D3D9.h>
#include <iostream.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
    PDIRECT3D9 pD3D = Direct3DCreate9(D3D_SDK_VERSION);

    int iAdapters = pD3D->GetAdapterCount();

    D3DADAPTER_IDENTIFIER9* pAdapters = new D3DADAPTER_IDENTIFIER9[iAdapters];

    for (int i = 0; i < iAdapters; i++)
    {
        pD3D->GetAdapterIdentifier(i, 0, &pAdapters[i]);

        char acAdapter[1024];
        sprintf(acAdapter, "Adapter-Name: %s\n" "Treiber: %s\n" "Treiber-Version: %d", pAdapters[i].Description, pAdapters[i].Driver, pAdapters[i].DriverVersion);

        cout << acAdapter << endl;
    }

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

    return 0;
}

Anonymous

unregistriert

9

08.12.2004, 16:06

ach ja
pD3D = NULL ? keine ahnung, warum die schnittstelle
nicht erzeugt wird ...

Anonymous

unregistriert

10

08.12.2004, 16:11

oh...
ich habe den fehler bereits selbst herausgefunden
ich hab noch nicht directx 9.0c installiert :(

Werbeanzeige