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.2008, 20:25

'verweis auf nicht aufgelöstes externes symbol'

beim programmieren mit der SDL (buch-spiel) sind mir folgende fehler untergekommen, die ich trotz debugger nicht geschafft habe zu beseitigen:

C-/C++-Quelltext

1
2
3
Fehler  1   error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW" in Funktion ""public: class std::list<class CAsteroid,class std::allocator<class CAsteroid> >::_Const_iterator<1> & __thiscall std::list<class CAsteroid,class std::allocator<class CAsteroid> >::_Const_iterator<1>::operator++(void)" (??E?$_Const_iterator@$00@?$list@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@QAEAAV012@XZ)". CGame.obj   SDL
Fehler  2   error LNK2001: Nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW".  CPlayer.obj SDL
Fehler  3   fatal error LNK1120: 1 nicht aufgelöste externe Verweise.  C:\Dokumente und Einstellungen\Simon\Dateien von Simon\Dokumente\SDL\Debug\SDL.exe  1   SDL


wisst ihr weiter? die SuFu hat mir bei diesem thema auch nicht sehr weitergeholfen -.-

und sorry wegen der unübersichtlichen fehler-schreibweise, besser hab ich's nicht hinbekommen.

mfg cotyr
I don't know half of you half as well as I should like; and I like less than half of you half as well as you deserve..

2

16.11.2008, 22:34

Könnte am Zeichensatz liegen.
Oder an der Codegenerierung/Laufzeitbibliothek.
Beides findest du in den Projekteinstellungen.

3

16.11.2008, 22:47


4

17.11.2008, 18:36

@TrikkieMikkie:
ich hab alles noch einmal durchgecheckt, es sind keine schreibfehler drin..
und die einstellungen (multithreaded-dll und die abhängigkeiten) hab ich genau aus dem buch übernommen.


@raxor: das problem liegt ja nicht bei _SDL_main oder so, sondern an "__imp___CrtDbgReportW" - und das isn der OBJEKTDATEI..
ich hab ganz ehrlich keine ahnung, wie man einen fehler in einer .obj behenen kann.
könnte es auch vllt daran liegen, dass ich nicht VS 6.0 oder 2003 sonder 2008 benutze?
hoffe, ihr könnt mir helfen.


mfg cotyr
I don't know half of you half as well as I should like; and I like less than half of you half as well as you deserve..

5

17.11.2008, 18:45

Ich meinte nicht irgendwelche Schreibfehler, sondern den verwendeten Zeichensatz.
Projekteinstellungen - Allgemein -> Zeichensatz

Und bei der Codegenerierung sollte "multithreaded-debug-dll" oder "multithreaded-debug" angegeben sein.

6

18.11.2008, 15:28

@TrikkieMikkie: welchen zeichensatz sollte ich am besten verwenden? uniconde oder multi-bit?
mit multithreadad-debug-dll sind die drei fehler weg, aber:
1. es öffnet sich ein schwarzes fenster names 'SDL_app'
2. der just-in-timer-debugger öffnet sich. (funkt mir öfters in anwendungen hinein)
3. die warnung ''msmvrt.dll' (oder so) gerät in den konflikt mit anderen bibliotheksdateien' erscheint.
4. das spiel funktioniert nicht.

an was könnte das schon wieder liegen?
wie im voraus schon genannt die version ( '08 )

und warum schreibt der buchaurot explizit, man solle die mulithreaded-dll benutzen, obwohl das dann trotzdem nicht funktioniert?



mfg cotyr
I don't know half of you half as well as I should like; and I like less than half of you half as well as you deserve..

7

18.11.2008, 16:41

Ich hab dir die Lösung für das Problem schon geschickt...

C-/C++-Quelltext

1
2
3
#ifdef _WIN32 
#undef main 
#endif


Das direkt vor die main Funktion.

// achja, das mit multithreated dll stimmt schon, und das mit dem msvcrt.dll ist anscheinend ein nicht immer auftretender Fehler, vlt. liegts an VS08.

8

18.11.2008, 17:51

Zitat von »"cotyr equinox"«

welchen zeichensatz sollte ich am besten verwenden? uniconde oder multi-bit?

Einfach mal durchprobieren.
Apropos probieren, hast du den Tipp von Raxor mal probiert?

Zitat von »"cotyr equinox"«


und warum schreibt der buchaurot explizit, man solle die mulithreaded-dll benutzen, obwohl das dann trotzdem nicht funktioniert?

Ich kenne das Buch nicht. Wahrscheinlich ist er (der Aurot :) ) von der Release-Version ausgegangen.

Achte auch darauf, in den Debug- und Release-Versionen die jeweiligen Libs zu linken.

9

18.11.2008, 20:42

@ raxor: deinen ratschlag habe ich auch schon ausprobiert, hat aber nicht funktioniert ):

ich habe schon so ziemlich alle möglichkeiten durchprobiert, also alle codegenerationen (-generierungen?) mit allen zeichensätzen.
ich denke, wenn der jit-debugger nicht da wäre, würde sich das SDL_app-window auch öffnen, aber selbst bei deaktiviertem debugger gibts was zu mokieren..
würde es etwas bringen, den code im release-modus zu compilen?
und sorry wegen den rechtschreibfehlern, ich versuche, meine posts so fehlerfrei wie möglich zu halten ;)


mfg cotyr
I don't know half of you half as well as I should like; and I like less than half of you half as well as you deserve..

10

18.11.2008, 20:53

Zitat von »"cotyr equinox"«

würde es etwas bringen, den code im release-modus zu compilen?

Hast du das noch nicht längst ausprobiert?

Werbeanzeige