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

21.03.2013, 21:23

Verweis auf nicht aufgelöstes externes Symbol (Include & Lib Verzeichnisse angegeben) InitWindow()

Ok,
es tut mir leid, dass ich hier mit so einem, wie es mir vorkommt, "Standardfehler" hierherzukommen,
aber ich weiß einfach nicht mehr weiter.
Und zwar: Ich rufe InitWindow() auf, aber der Linker scheint so eine Funktion nicht zu kennen... (Technisch vielleicht nicht ganz korrekt - bitte korrigieren ;) )

Ich habe:
  • Include- und Bibliotheksverzeichnisse für die TriBase, DirectX und Platform SDK hinzugefügt
  • Die Dateien InitWindow.cpp und InitWindow.h dem Projekt hinzugefügt (Ins Projektverzeichnis kopiert)
  • Eine Windows und keine Konsolenanwendung erstellt...

Mein Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
#include <Windows.h>
#include <TriBase.h>
#include "InitWindow.h"

int WINAPI WinMain (HINSTANCE hInst, HINSTANCE prevInst, LPSTR lpCmd, int iShowCmd)
{
    InitWindow (100,100,"Hallo",NULL);
}

(Ich wollt' einfach mal schauen, ob's funktioniert, aber da es schon beim Linker scheitert, gehts jetzt nicht um das, ob jetzt ein Fenster erstellt wird und funktioniert ... :))

Tut mir nochmal Leid wegen so einer Frage, ich hoffe ich hab nicht irgendeinen allzu einfachen Fehler eingebaut :S

2

21.03.2013, 22:05

Wie sieht denn deine InitWindow.h aus? Und giebt es eine InitWindow.cpp mit definierter funktion?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

3

21.03.2013, 23:08

Es reicht nicht anzugeben wo der Linker die DLL library finden soll, sondern du musst auch angeben welche er effektiv dazu linken soll. Siehe dazu folgenden Link:
http://stackoverflow.com/questions/26306…n-visual-studio

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »drakon« (22.03.2013, 10:50)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

22.03.2013, 06:40

Die DLL ist dem Linker total egal, drakon ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

22.03.2013, 12:02

Jaja. Das hab ich schon mal gemacht :)
Da hab ich eingetragen:

Quellcode

1
2
3
D3D9.lib
DXERR9.lib
TriBase.lib

Aber was soll ich bei InitWindow eintragen? (Schließlich hab' ich nur die Code- und Headerdatei, die ich hier wohl nicht eintragen soll...)
Ich hab versucht, die generierte .lib Datei hinzuzufügen, aber die will er nicht fressen.
(Warum bindet er sie nicht automatisch ein - ich meine er macht .lib Dateien für jede .cpp Datei in meinem Projekt, oder?)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

22.03.2013, 12:08

Ich hoffe nicht, dass er eine lib für jede cpp macht, das wäre ungünstig. Eine obj wäre richtig.

Wo hast Du denn die libs eingetragen und was genau hat das mit der Code- und Headerdatei zu tun?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

22.03.2013, 12:09

Ist dieses InitWindow() in einer separaten .cpp Datei definiert, die in keiner dieser libs enthalten ist? Falls ja: Hast du diese .cpp zu deinem Projekt hinzugefügt?

9

22.03.2013, 12:40

Ich hoffe nicht, dass er eine lib für jede cpp macht, das wäre ungünstig. Eine obj wäre richtig.

Ups, ja stimmt... ^^

Ja, ich habe die .cpp Datei zum Projekt hinzugefügt...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

22.03.2013, 12:45

Ist die Funktion denn eigentlich von Dir? Denn wenn ja, wird es langsam etwas Zeit für Code und vor allem auch mal für die kopierte Fehlermeldung.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige