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

16.11.2009, 20:43

Probleme beim 1. fenster

Hallo. und guten Abend.
Ich habe das Buch von David Scherfgen und bin gerade dabei die ersten Sachen durchzuarbeiten. Ich bin gerade dabei das erste Fenster zu erstellen. Ich habe (so denke ich) alle Projekt einstellungen vorgenommen.

Hier ist mein Quellcode

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpCmdLine,
                     int nCmdShow )
{
    tbInit();
    HICON test = LoadIcon(hInstance, MAKEINTRESOURCE(101));
    
    tbResult a = InitWindow(640,480,"Test 1",test);
    
   return 0;
}


Leider bekomme ich vom Linker einen Fehler :

C-/C++-Quelltext

1
1>main.obj : error LNK2001: unresolved external symbol "enum tbResult __cdecl InitWindow(int,int,char *,struct HICON__ *)" (?InitWindow@@YA?AW4tbResult@@HHPADPAUHICON__@@@Z


Leider habe ich im Netz nicht wirklich etwas gefunden. Ich vermute mal das es mit dem ICON laden zusammenhängt. Kann mir da jemand helfen.
Vielen Dank

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

2

16.11.2009, 20:45

Erst mal herzlich wilkommen hier im Forum^^

schau mal, ob du alles gelinkt und includet hast...
linker fehler bestehen immer darin, dass ieine datei nicht gelinkt ist...


Zitat

Linkertoolfehler LNK2001
Fehlermeldung
Nicht aufgelöstes externes Symbol "Symbol"
unresolved external symbol "symbol"

Im Code wird auf ein Element verwiesen (z. B. eine Funktion, Variable oder Marke), das der Linker in den Bibliotheken und Objektdateien nicht finden kann.

ist das nicht genug? (erster treffer bei google) :D


mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

3

16.11.2009, 20:45

ist das Dein Ganzer Code ??

da fehlt mindestens noch ein

C-/C++-Quelltext

1
#include <TriBase.h>


und bei den Linkereinstellungen unter->Zusätzliche Abhängigkeiten Tribase.lib

4

16.11.2009, 20:48

Danke für die schnelle antworten :
Also ich habe ncoh zusätzlich includiert :

C-/C++-Quelltext

1
2
3
#include "Tribase.h"
#include "InitWindow.h"
#include "resource.h"

und bei den linker einstellungen habe ich folgendes zu stehen
TribaseD.lib D3D9.LIB

ich vewende übrigens vs 2008 profession

5

16.11.2009, 20:51

So:

C-/C++-Quelltext

1
    tbResult a = InitWindow(640,480,"Test1",MAKEINTRESOURCE(101));

6

16.11.2009, 20:53

Wenn ich das mache bekomme ich :
error C2664: 'InitWindow' : cannot convert parameter 4 from 'LPWSTR' to 'HICON'

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

7

16.11.2009, 20:57

mein tipp:
nicht mit diesen Hilfsheadern arbeiten, sondern gleich mit

C-/C++-Quelltext

1
tbDirect3D::Instance().Init(...)


mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

8

16.11.2009, 20:59

*vor den Klopf schlag* kommt davon, wenn man so verschlafen ist.
Also du schreibst in deine Resource-Datei z.B.

C-/C++-Quelltext

1
IDI_ICON_DEIN ICON "deinicon.ico"


in die Resource.h

C-/C++-Quelltext

1
#define IDI_ICON_DEIN 22


in die main.cpp

C-/C++-Quelltext

1
InitWindow(640,480,"Test1", LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON_DEIN)))


EDIT: @CBenni::O: Ich glaub, es wäre nicht gut, wenn er gleich am Anfang schon mit dem Tri-Base Zeugs Arbeitet. Was macht er dann, wenn er keine Tri-Base engine hat ?

9

16.11.2009, 21:00

Aber was habe ich denn falsch gemacht

10

16.11.2009, 21:01

Wenns jetzt funktioniert, wird es glaub ich nur eine Sache von Impliziter Konvertierung, ... sein.

Werbeanzeige