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

sebo2529

Frischling

  • »sebo2529« ist der Autor dieses Themas

Beiträge: 10

Wohnort: Bielefeld

Beruf: Student

  • Private Nachricht senden

1

08.01.2007, 10:38

Problem bei 2.8 des Beispielprogramm

Hi Leute

Ich bin jetzt auf Seite 112 angekommen wo gerade ein Beispielprogramm erfasst wird. Ich dachte ich Programmiere es auch mal nach wegen neugier. Doch er gibt mir ne Fehler meldung aus.

C-/C++-Quelltext

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

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




hier der Quellcode. Vielleicht habe ich dort einen Fehler wobei ich nicht feststellen kann das dort ein fehler ist!

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 Aufbau", "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,"Adapter-Informmation nicht gefunden", "Adapter nicht gefunden", 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_ICONEXCLAMATION);
    }

    pD3D->Release();
    delete[] pAdapters;
    
    return 1;
}


Ich danke allen die mir Helfen schon im voraus.

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

2

08.01.2007, 10:57

Du hast vergessen d3d9.lib zu linken.
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

sebo2529

Frischling

  • »sebo2529« ist der Autor dieses Themas

Beiträge: 10

Wohnort: Bielefeld

Beruf: Student

  • Private Nachricht senden

3

08.01.2007, 11:00

Danke

Habe den grauen Text nicht gelesen! HEHE wie ungeschikt on mir. Aber warum gibt er mir die Fehlermeldung " Das er nicht die Schnittstelle findet"?

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

4

08.01.2007, 11:07

Er findet die Funktion nicht. Sie ist zwar in D3D9.h deklariert, aber die Implementierung der Funktion ist in der Bibliothek und die hattest du ja nicht dabei.
Ausserdem: Den grauen Text bitte IMMER lesen und wenn da ein "Nichtaufgeloestes externes Symbol" ist, dann hast du entweder eine Lib nicht gelinkt oder eine deiner eigenen Funktionen noch nicht implementiert.
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

5

04.05.2008, 21:39

Hi
ich wollte mal sagen, ich hab das selbe problem, nur dass ich die datei d3d9.lib schon dem projekt hinzugefügt habe.
Hab ich vielleicht was falsch gemacht?
Ich hab das so gemacht: Projekt->Dem Projekt Hinzufügen->Dateien
(Visual C++ 6.0)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

04.05.2008, 22:02

Du musst die libs linken.

http://www.drakon.ch/Tutorial/Tutorial.html

Das sollte da irgendwo stehen..

(Immerhin hast du gesucht.. ;))

7

05.05.2008, 22:44

Zitat von »"ich90"«

Hi
ich wollte mal sagen, ich hab das selbe problem, nur dass ich die datei d3d9.lib schon dem projekt hinzugefügt habe.
Hab ich vielleicht was falsch gemacht?
Ich hab das so gemacht: Projekt->Dem Projekt Hinzufügen->Dateien
(Visual C++ 6.0)


steig lieber auf vs 2005 / 2008 um. vs 2005 hat den vorteil, das sie auf systemen mit .net framework 2.0 läuft, was bei vs 2008 leider nicht der fall ist, da muss man erst das .net framework 3.5 installieren

8

05.05.2008, 23:20

Zitat von »"Bolle"«


steig lieber auf vs 2005 / 2008 um. vs 2005 hat den vorteil, das sie auf systemen mit .net framework 2.0 läuft, was bei vs 2008 leider nicht der fall ist, da muss man erst das .net framework 3.5 installieren

Noch besser ist Codeblocks. Braucht überhaupt kein .NET und wenn man MinGW als Compiler nutzt braucht man nciht mal VC Redistributables installieren. Und besser als VC 6.0 isses allemal.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige