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

19.08.2006, 12:10

Jede menge Fehler mir TriBase!

Hallo

ich prog gerade das Programm zur Aufgabe 1 am Ende des 1. Kapitels und hab dazu folgendes geschreiben:

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********************/
#include <Windows.h>
#include <TriBase.h>

/******************Funktionen******************/
int _stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                     char* CmdLine, int CmdShow)
{
    if(tbInit())
    {
    tbWriteToLog("Fehler beim Inizialisieren der Engine!");
    }
    else
    {
    tbWriteToLog("Engine erfolgreich Inizialisiert!");
    }
    
    if(tbExit())
    {
        tbWriteToLog("Fehler beim Beenden der Engine!");
    }
    else
    {
        tbWriteToLog("Engine erfolgreich Beendet");
    }

    return 0;
} 


dann kamen folgende fehlermeldungen...:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
1>------ Build started: Project: Aufgabe 1, Configuration: Debug Win32 ------
1>Compiling...
1>main.cpp
1>c:\dokumente und einstellungen\philipp reitter\eigene dateien\visual studio 2005\c++\tribase\include\dshowbaseclasses\wxutil.h(195) : warning C4312: 'type cast' : conversion from 'LONG' to 'PVOID' of greater size
1>c:\dokumente und einstellungen\philipp reitter\eigene dateien\visual studio 2005\c++\tribase\include\tbgui.h(288) : warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data
1>Linking...
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) enum tbResult __cdecl tbExit(void)" (__imp_?tbExit@@YA?AW4tbResult@@XZ) referenced in function _WinMain@16
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) enum tbResult __cdecl tbWriteToLog(char *,...)" (__imp_?tbWriteToLog@@YA?AW4tbResult@@PADZZ) referenced in function _WinMain@16
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) enum tbResult __cdecl tbInit(void)" (__imp_?tbInit@@YA?AW4tbResult@@XZ) referenced in function _WinMain@16
1>C:\Dokumente und Einstellungen\Philipp Reitter\Eigene Dateien\Visual Studio 2005\C++\My Programms\Kapitel1\Aufgabe 1\Debug\Aufgabe 1.exe : fatal error LNK1120: 3 unresolved externals
1>Build log was saved at "file://c:\Dokumente und Einstellungen\Philipp Reitter\Eigene Dateien\Visual Studio 2005\C++\My Programms\Kapitel1\Aufgabe 1\Debug\BuildLog.htm"
1>Aufgabe 1 - 4 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


kann mir da irgendjemand weiterhelfen...?

danke im vorraus

Mfg Philipp

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

2

19.08.2006, 12:20

Ganz im Ernst ... Befass dich nochmal mit den Grundlagen von C++. Du hast ja bereits Erfahrung im Programmieren, da arbeitet man so ein C++ Buch doch in noTime durch! Der Spieleprogrammierer von Kallista ist wirklich gut.

Zu deinem Problem:
Du hast auch ganz sicher alle Librarys gelinkt? Die meisten Linkerfehler rühren daher!

3

19.08.2006, 13:12

Zitat

Ganz im Ernst ... Befass dich nochmal mit den Grundlagen von C++. Du hast ja bereits Erfahrung im Programmieren, da arbeitet man so ein C++ Buch doch in noTime durch! Der Spieleprogrammierer von Kallista ist wirklich gut.

Wieso was hast du denn? Beziehst du dich jetzt auf einen anderen Thread?

Zitat

Zu deinem Problem:
Du hast auch ganz sicher alle Librarys gelinkt? Die meisten Linkerfehler rühren daher!

Um genau zu sein, hast du vergessen die TriBaseD.lib zu linken (für Debugvarianten).
Wenn du dann den Release-Modus verwendest, musst du die TriBase.lib linken.

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

4

19.08.2006, 15:11

Er hat in irgend einem anderen Thread durchblicken lassen das er bisher "nur" mit Delphi gearbeitet hat. Und meiner Meinung nach ist 3D Spieleprogrammierung als direkter Einstieg in C++ sehr mächtig ... Und ich hab keine Ahnung wie seine Erfahrungen mit Spieleprogrammierung allgemein stehen, aber imho ist es schon sehr hilfreich wenn man die grundlegenden Mechaniken schon vor dem Buch kennt.

5

19.08.2006, 15:28

und wie linke ich zur TriBaseD ??
muss ich da was in der TriBase-h umschreiben oder in meinem Prog..?
bzw. wie linke ich ich hab bist jetzt nur
#Include ...

geschrieben aber was meint ihr mit linken?

Anonymous

unregistriert

6

19.08.2006, 15:30

Zu seiner Verteidigung muss ich sagen das in den meisten Büchern die IDE und das einbinden nur minimal erklärt wird. Das hat ja auch nicht nur mit C++ zu tun sondern mit dem diversen Entwicklungsumgebungen. Zwar ist hier der Fehler vielleicht eindeutig, trotzdem wird in 99% der Bücher hierzu keine "fundierte" Erklärung geliefert.

(Wenn sie diese CD benutzen und diese IDE benutzen tun sie das oder das. Fertig!)

cu

7

19.08.2006, 15:31

Alt + F7->Confiuration Properties->Linker->Input

Bei Additional Dependencies deine lib Datei eintragen.

Aber genau solche sachen wären z.B. in C++ für Spieleprogrammierer genaustens erklärt.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

8

19.08.2006, 15:34

Zitat von »"Abrexxes"«

Zu seiner Verteidigung muss ich sagen das in den meisten Büchern die IDE und das einbinden nur minimal erklärt wird. Das hat ja auch nichts mit C++ zu tun sondern mit dem diversen Entwicklungsumgebungen. Zwar ist hier der Fehler eindeutig, trotzdem wird in 99% der Bücher hierzu keine "fundierte" Erklärung geliefert.

Da hast du leider recht, aber es zeugt imho von mangelnder Praxis, etwas das sich nur durch Übung erreichen lässt. Wenn ich mir so ansehe was für Probleme ich im Laufe der Zeit so hatte ... Mittlerweile habe ich einfach mal 2 Jahre durch die Gegend programmiert und langsam fühle ich wie ich vertrauter werde mit C++. Es geht mir wirklich nicht darum jemanden zu schikanieren oder dergleichen xD Ich meine nur grad zu sehen wie jemand mit offenen Armen in eine recht große Enttäuschung reinrennt ...

9

19.08.2006, 17:19

ah... danke!!!!

nur woher weiß ich welche lib ich eintragen muss... ich mein gibts da irgendwelche lib's von windows oder direct X oder wird im buch gesagt "Trage die lib... ein "???

10

19.08.2006, 17:37

Im Buch sollten alle Libs stehen die du linken musst.

Werbeanzeige