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

sNej

Frischling

  • »sNej« ist der Autor dieses Themas
  • Private Nachricht senden

1

09.03.2009, 18:28

Alles eingebunden - Trotzdem Fehlermeldung

Hi,

ich habe bereits alle im Buch angesprochenen Maßnahmen vorbereitet.
Wenn ich nun ein Beispielprojekt öffne , kompiliere und ausführe habe ich auch keine Probleme also das klappt alles.

Nun habe ich ein eigenes Projekt erstellt -> Windows Anwendung
Ich habe die TriBase.dll und TriBaseD.dll unter Linker - Zusätzliche Abhängigkeiten hinzugefügt aber es kommen immer diese Fehlermeldungen:

Quellcode

1
2
MSVCRT.lib(crtexew.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_WinMain@16".
...\Release\GameEngine.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.


Hier der Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include <TriBase.h>

int main ()
{
    int i = 1337;
    tbWriteToLog ("i hat den Wert: %d" ,i );

    return 0;
}


Wie gesagt installiert und eingebunden habe ich alles (sonst würden ja die Beispielprogramme nicht laufen).
Der Fehler muss irgendwo in meinen Projekteinstellungen liegen.

Ich nutze MSVC++ Express Edition 2008.

Bitte um Rat :(

2

09.03.2009, 18:33

Zitat

Windows Anwendung
und

Zitat

C-/C++-Quelltext

1
int main () 

passt nicht ganz zusammen ;)

entweder Konsolenanwendung und main oder Windowsanwendung und WinMain

3

10.03.2009, 08:53

dein main() mit WinMain ersetzen:
http://msdn.microsoft.com/en-us/library/ms633559.aspx

Weiss jetzt nicht genau wie die Tribase.h aussieht, aber eventuell musst du noch oben

Quellcode

1
#include <Windows.h>

einfügen

main ist unter Windows in der Regel für Konsolenanwendungen gedacht, wärend WinMain in einer Windowsanwendungen verwendet wird.

Gruß
Markus

sNej

Frischling

  • »sNej« ist der Autor dieses Themas
  • Private Nachricht senden

4

10.03.2009, 16:08

Jo klar, das wars xD
Danke für die Antworten, aber muss bei diesem Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <TriBase.h>
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpCmdLine,
                     int nCmdShow )
{
    int i = 12;
    tbWriteToLog ("%d" ,i );

    return 0;
}


nicht normalerweise eine "Log.html" im Ordner erstellt werden ?

5

10.03.2009, 16:19

Wenn du tbInit() beim Starten und analog tbExit() beim Beenden aufrufst, dann schon. ;)

Also so in etwa:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpCmdLine,
                     int nCmdShow )
{
    tbInit();

    int i = 12;
    tbWriteToLog ("%d" ,i );

    tbExit();

    return 0;
}
fka tm

sNej

Frischling

  • »sNej« ist der Autor dieses Themas
  • Private Nachricht senden

6

10.03.2009, 16:24

Super, jetzt klappt alles.
Vielen Dank :)

Werbeanzeige