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

Daniel

Frischling

  • »Daniel« ist der Autor dieses Themas

Beiträge: 4

Wohnort: Wenden

Beruf: Student (angew. Informatik / Elektrotechnik)

  • Private Nachricht senden

1

24.05.2003, 19:44

Linker meldet Fehler beim 1. Beispiel im Buch

Hallo!
ich habe da bestimmt einen ganz doofen Fehler gemacht (*schäm*) aber wenn ich versuche das 1. Beispiel in Kapitel 2 zu kompilieren und zu linken schmeißt mir der Linker

Quellcode

1
2
3
4
5
6
7
Linker-Vorgang läuft...
Fenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "__declspec(dllimport) enum tbResult __cdecl tbExit(void)" (__imp_?tbExit@@YA?AW4tbResult@@XZ)
Fenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "enum tbResult __cdecl ExitWindow(void)" (?ExitWindow@@YA?AW4tbResult@@XZ)
Fenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "__declspec(dllimport) enum tbResult __cdecl tbDoMessageLoop(enum tbResult (__cdecl*)(float),enum tbResult (__cdecl*)(float))" (__imp_?tbDoMessageLoop@@YA?AW4tbResult@@P6A?AW41@M@Z0@Z)
Fenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "enum tbResult __cdecl InitWindow(int,int,char *,struct HICON__ *)" (?InitWindow@@YA?AW4tbResult@@HHPADPAUHICON__@@@Z)
Fenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "__declspec(dllimport) enum tbResult __cdecl tbInit(void)" (__imp_?tbInit@@YA?AW4tbResult@@XZ)
Debug/FensterTest_Nr2.exe : fatal error LNK1120: 5 unaufgeloeste externe Verweise

Das Beispiel habe ich aus dem TriBase-Ordner auf meiner Platte geladen.
Was kann ich denn da nur falsch gemacht haben?
Gruß
Daniel

Shark_3D

Treue Seele

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

2

24.05.2003, 20:00

Haste die tribase.lib gelinkt?
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

24.05.2003, 20:35

Jo, das muss der Fehler sein. Im Kapitel 1 steht genau, wie Du alles installieren musst (LIB-Dateien, DLLs etc.).

Daniel

Frischling

  • »Daniel« ist der Autor dieses Themas

Beiträge: 4

Wohnort: Wenden

Beruf: Student (angew. Informatik / Elektrotechnik)

  • Private Nachricht senden

4

24.05.2003, 23:31

Ich habs!
Ich hatte die lib zwar gelinkt, jedoch stand sie nicht am Anfang sondern am Ende der Zeile.
Danke euch.

Daniel

Frischling

  • »Daniel« ist der Autor dieses Themas

Beiträge: 4

Wohnort: Wenden

Beruf: Student (angew. Informatik / Elektrotechnik)

  • Private Nachricht senden

5

25.05.2003, 00:07

Ähm...
Könnt ihr mir vielleicht kurz erläutern wie es zu diesem Fehler kommt, beziehungsweise, was die Fehlermeldung mir eigentlich sagen will?

Shark_3D

Treue Seele

Beiträge: 311

Wohnort: Hannover

Beruf: Schüler

  • Private Nachricht senden

6

25.05.2003, 00:14

In der Header wird ja zu Functionen gelinkt die in den cpps der lib sind.Und wenn die lib nett gelinkt ist sien das nur leere FunctionenPrototypen.Ist schlecht Erklärt und wahrscheinlich net mal richtig aber so ähnlich ist das glaub ich!!! ;)
"Immer die doppelte Menge"
(Kaufmannsregel Nr.355 von der Lehrkassette 3)

Anonymous

unregistriert

7

27.08.2003, 22:01

Ich habe genau das selbe Problem wie Daniel, habe meiner Meinung nach alles richtig gelinkt (in den Optionen) und auch bei den Projekt/Einstellungen noch mal alles wie beschrieben eingetragen.
Ich benutze VC++ 6.0 in der Prof Edition, und langsam bin ich am verzweifeln und weiß nicht was ich falsch mache.
Kann mir bitte jemand weiter helfen? Danke.

Stefan

Alter Hase

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

8

27.08.2003, 23:04

Hallo,

tribaseD.dll befindet sich im gleichen Ordner? Hast du sonst auch Probleme mit dem Linker, oder passieren die Fehler nur mit dem Code vom Buch?

Anonymous

unregistriert

9

28.08.2003, 11:51

Die tribase.dll befindet sich im Ordner Tribase/bin. habe sie jetzt auch mal ins Verzeichnis von dem Beispiel kopiert, aber ohne Erfolg.
Mit anderen Sachen habe ich die Probleme nicht, allerdings bin ich auch gerade erst beim Umstieg. Die anderen Programme waren immer nur mit Textausgabe.

Die Fehlermeldung schaut wie folgt aus:

Linker-Vorgang läuft...
Fenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "enum tbResult __cdecl ExitWindow(void)" (?ExitWindow@@YA?AW4tbResult@@XZ)
Fenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "enum tbResult __cdecl InitWindow(int,int,char *,struct HICON__ *)" (?InitWindow@@YA?AW4tbResult@@HHPADPAUHICON__@@@Z)
LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/Fenster.exe : fatal error LNK1120: 3 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

Wenn das vielleicht irgendwem was sagt...

Stefan

Alter Hase

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

10

28.08.2003, 12:16

Sieht so aus als wäre bei dir der Ordner Allgemeines mit den Datein InitWindow.cpp,.... im falschen Verzeichnis!
Suche den Ordner mal und kopiere in in deine Beispiele und ändere die Pfadangabe(ganz oben im Code, z.B in der Dreieck.cpp Datei):

Quellcode

1
2
3
#include "..\\..\\Allgemeines\\InitWindow.h"
#include "..\\..\\Allgemeines\\Direct3DEnum.h"
#include "..\\..\\Allgemeines\\InitDirect3D.h"


in

Quellcode

1
2
3
#include "Allgemeines\\InitWindow.h"
#include "Allgemeines\\Direct3DEnum.h"
#include "Allgemeines\\InitDirect3D.h"




Dann müsste es gehen, oder noch einfacher du kopierst den Ordner Allgeimes an die gewünschte Stelle wie es im Code steht, geht beides...

Werbeanzeige