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

09.06.2010, 16:19

1. Aufgabenstellung

Hallo,

ich bin grad bei der 1. Übungsaufgabe im Buch wo es darum geht die TriBase Engine zu Initialiesieren und etwas ins Logbuch zu schreiben. Nur leider will schon das nicht klappen :( .... hier is der Code den ich verwendet habe:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
#include <TriBase.h>int main () 
{ 
tbInit();
float f = 178.285;
tbWriteToLog("Die Var f hat den Wert %.2f!", f);

tbExit(); 
}


und als Fehler meldung kommt folgendes:

1>MSVCRTD.lib(crtexew.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup".

1>C:\Users\Pommes\documents\visual studio 2010\Projects\TB Übung\Debug\TB Übung.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

09.06.2010, 16:43

ohh ein supercoder. willkommen im forum.

hast du nen win32 projekt oder consolen projekt gestartet?

das sollte weiter helfen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

3

09.06.2010, 16:58

hab es erst als win32 gemacht weil es im Buch so drin stand, aber habe es auch als console probiert da sagt er folgendes:



LINK : fatal error LNK1104: Datei "TriBaseD.dll" kann nicht geöffnet werden.



Hab die dll aber im debug verzeichnis drin so wie es beschrieben wurde

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

09.06.2010, 17:03

welche ide überhaupt?
hast dir schon diesen thread angesehen?

edit: ach habs schon. visual studio 2010.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

BlazeX

Alter Hase

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

5

09.06.2010, 17:16

1>MSVCRTD.lib(crtexew.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup".

Das heißt, dass der Linker nach einer Funktion namens WinMain sucht. Findet sie aber nicht.
Der Fehler liegt darin, dass du ein neues Projekt als "Windows Anwendung" erstellen willst und dann scheibst du "int main()". Eine Windowsanwendung benötigt eine WinMain-Funktion. To cut a long story short ersetzt einfach dein "int main()" durch "int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char * pcCommandLine, int iShowWindow)"


LINK : fatal error LNK1104: Datei "TriBaseD.dll" kann nicht geöffnet werden.

Du solltest TriBaseD.lib und nicht TriBaseD.dll angeben!

6

09.06.2010, 17:19

öhm ... der thrad erschlägt mich ein wenig wenn ich ehrlich bin ....
wo liegt den das problem überhaupt? o.O

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

7

09.06.2010, 17:20

achja wie ich platformabhängige programme liebe.
blaze hat recht. ich bin davon ausgegangen, dass ein supercoder seinen quelltext mit dem im buch vergleicht und den fehler, wenn er im quelltext liegt, selbst findet. deswegen bin ich von nem fehler beim einrichten des projekts ausgegangen >.<
du hast übrigens kein zeilenumbruch zwischen dem include und der mainfunktion.(ein weiterer grund für den fehler...)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

8

09.06.2010, 17:21

öhm ... der thrad erschlägt mich ein wenig wenn ich ehrlich bin ....
wo liegt den das problem überhaupt? o.O


Dass die Einstiegsfunktion bei Konsolenanwendungen "main()" heißt, bei Windowsanwendungen aber "WinMain()"!:)
WIP Website: kevinheese.de

9

09.06.2010, 17:24

ah ja gut problem gelöst ^^



das mit dem fehlenden Zeilenumbruch muss durch das copy und paste gekommen sein.



Ok also Kompilieren tut er nun, aber müsste er nicht dieses logfile im debug ordner erstellen?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

10

09.06.2010, 17:25

nein im projektordner wenn du nichts anderes angegeben hast.
das programm wird beim debuggen immer im projektordner ausgeführt.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige