.| Autor | Beitrag |
|---|---|
|
000 16.11.2002, 21:46 snoopdog |
Hi, ich bin grad dabei mich son bisschen in SDL + OGL einzuarbeiten. Naja nur da stoße ich gleich auf ein Problem. DLmain.lib(SDL_main.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _SDL_main ich hab absolut keine Ahnung warum. Naja vielleicht is ja der code nützlich, also hier ist er, auch wenn es net viel ist.
Visit our 500er Gamer Lan |
|
Profil || Suche |
|
001 17.11.2002, 11:21 Prefect |
1. SDL_main.h müßtest du nicht #includen (wird von SDL.h gemacht). cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
002 17.11.2002, 11:29 snoopdog |
hmm jo jetzt geht es, danke. Aber kannst du mir mal kurz erklären, warum man die Parameter mit setzen muss? Ahh und dann noch etwas: Ich fülle ja den screen mit schwarz. so wen nich aber nun das Fenster hin und herschiebe, dann ist ab und zu rechts mal nen größerer grüner Balken und mal nen kleinerer. Warum?? --Visit our 500er Gamer Lan |
|
Profil || Suche |
|
003 17.11.2002, 11:48 apfelkorn |
öhm... ihr müsst eigentlich SDL_main benutzen und nicht das normale main, denn meines wissens wird die normale mainfunktion durch sdl überritten... -- |
|
Profil || Suche |
|
004 17.11.2002, 13:30 Mazze |
Ich nehm die normale und es geht... --BattleTech-MOD: |
|
Profil || Suche |
|
005 17.11.2002, 17:54 Prefect |
Also, tauchen wir hinab in die Gründe von SDL_main... Auf manchen Plattformen führt SDL vor der Ausführung des eigentlichen Programms ein paar Initialisierungen durch, auf Windows wird z.B. stdout und stderr in Dateien umgeleitet. Der Code, der diese Initialisierungen durchführt, befindet sich in der SDLmain.lib, und in der SDLmain.lib ist auch die Funktion main(int, char**) deklariert. Diese main()-Funktion ruft dann eine Funktion SDL_main(int, char**) auf. Deswegen muß die main-Funktion im eigentlichen Programm SDL_main heißen. Der Clou ist aber, daß SDL.h die SDL_main.h #include-t, und in der SDL_main.h findet man die Zeile
Klar, oder? Dadurch wird die main-Funktion insgeheim umbenannt. snoopdogs Problem hatte jetzt mit C++ und Funktionsüberladungen zu tun. In C++ ist es möglich, mehrere Funktionen mit dem gleichen Namen zu haben, wenn sie verschiedene Parameter tragen. Deswegen kommt es auch zum sogenannten Namemangling, bei dem aus der Funktion SDL_main sowas gemacht wird wie SDL_main@ivvc oder so, je nach Compiler. Anhand dieser Anhängsel können überladene Funktionen vom Linker unterschieden werden. Allerdings erwartet die SDLmain.lib, die in reinem C geschrieben ist, daß die Funktion SDL_main einfach nur SDL_main heißt (bzw. _SDL_main, der C-Compiler fügt vorne einen Unterstrich an aber sonst nichts) und keine Anhängsel hat.
Diese Zeile sagt dem Compiler, daß er für die SDL_main kein Namemangling durchführen soll. Allerdings scheint der C++-Compiler in deinem Fall etwas beschränkt gewesen zu sein, denn er hat sich nur gemerkt, daß eine Funktion namens SDL_main mit den zwei angegebenen Parametern (int, char**) wie eine C-Funktion behandelt werden soll. Die Funktion SDL_main ohne Parameter hat er nach wie vor wie eine C++-Funktion behandelt. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
006 20.11.2002, 10:55 King of Darkness |
ich bin imemr wieder erstaunt von dir, perfect ok gehört jetz nich zu thread --Coding Center --- Tutorials über Programmierung und andere Themen |
|
Profil || Suche |
|
007 03.12.2002, 09:37 Kriz |
Hehehe, 25... Mach den Prefi nicht älter, da bekommt er sonst graue Haare von >;) Der Kerl beschäftigt sich halt seit vielen Jahren mit Computern usw. Da kommt sowas automatisch... --K:R-I)Z++ |
|
Profil || Suche |
|
008 04.12.2002, 10:50 mg |
Studiert Prefect Informatik/Programmierung oder bringt er sich das ganze selbst per Bücher/Tutorials bei? btw: er ist nicht Perfect... er ist Prefect. --Dieser Beitrag wurde am 04.12.2002 um 10:50 von mg bearbeitet. |
|
Profil || Suche |
|
009 04.12.2002, 14:11 King of Darkness |
naja und wie alt is er nun ? und das von mg würde mich auch interessiern --Coding Center --- Tutorials über Programmierung und andere Themen |
|
Profil || Suche |
|
010 04.12.2002, 14:33 Prefect |
Ich bin 18 und schreibe nächstes Jahr Abitur. Am wichtigsten war aber wahrscheinlich, daß ich eben _keinen_, oder nur sehr eingeschränkten Zugang zu Informationen hatte (ganz besonders: kein Internet). Dadurch wurde das Verstehen von bestimmten Dingen immer zu einer Art Ratespiel, zum Teil mit Ausprobieren verbunden. Z.B. habe ich ohne jegliche Dokumentation herausgefunden, wie man den Maustreiber unter DOS mit Assembler anspricht, indem ich ein kleines Testprogramm in Pascal geschrieben und dann disassembliert habe (mit dem alten DOS-Debugger, wohlgemerkt *g*). Wer Computer und Programmierung so wie ich verstehen lernen will muß dazu vor der Grundschule anfangen, eine Hackermentalität und kein Internet, dafür aber sehr viel Durchhaltevermögen (was eigentlich zur Hackermentalität dazugehört) haben - und in Kauf nehmen, daß fast niemand wirklich versteht, was man da eigentlich macht. cu, Widelands - Gemütliche Aufbaustrategie, Free Software Dieser Beitrag wurde am 04.12.2002 um 14:40 von Prefect bearbeitet. |
|
Profil || Suche |
|
011 04.12.2002, 15:27 King of Darkness |
hui, ich habe zwar auch vor der grundschule schon kontakt mit pcs gehabt aber da waren es eher die spiele ... --Coding Center --- Tutorials über Programmierung und andere Themen |
|
Profil || Suche |
|
012 04.12.2002, 16:38 Kriz |
Viele "Schicksale" ähneln sich da. Meines war auch nicht sehr viel anders als das von Prefect. Angefangen hat alles mit dem C64, wo ich bereits nach sehr kurzer Zeit mich mit dem C64 BASIC auseinandergesetzt habe. Auch zu diesem Zeitpunkt hatte ich kein Internet. Meine Quellen war ein fettes C64 Programmierhandbuch für BASIC und gelegentliche Blicke in solche berühmten Magazine wie C64er oder Input64 (Diskmagazin). Danach kam der Amiga500, bei dem ich um's Verrecken (!!!) keinen C-Compiler auftreiben konnte (waren alle irgendwie immer ausverkauft und meine zocksüchtigen Kumpels hatten von Programmieren soviel Ahnung wie ne Kuh vom Tauchen). Daher arbeitete ich dort auch eher mit dem Amiga-BASIC, auch wenn ich vom Wunder "C" schon viel gehört hatte und ich geil drauf war, diese Sprache endlich mal aktiv kennenlernen zu können. Danach gab es einen Abstecher nach Q-BASIC im EDV-Kurs auf der Gesamtschule, der aber nicht viel eingebracht hatte. Auf dem Gymi gab's dann endlich mal was "Anständiges" in Form von TurboPascal, was ein Umdenken seitens der Programmstrukturierung bei mir erforderte. Ich nannte Pascal früher immer "C für Arme", da es zwar beinahe wie C aufgebaut war, aber irgendwie nur dünnschissiges Gerümpel bei rumgekommen war. Als ich dann mit dem Studium begonnen hatte, kaufte ich mir gleich einen PC (133er MMX), um ENDLICH (!!!) C aktiv erforschen zu können mittels dem alten Borland C-Compiler unter DOS. Bis dato hatte ich immer noch kein Inet, mußte also alles aus Büchern, Vorlesungen und Gedankenaustauschen herbeisaugen. Später kam dann C++ als Fach vor und ich kaufte mir VC++ 6.0 als Plattform. Das war irgendwie leichter zu editieren als auf den ollen Sparcs, da die Hampelmänner von der Admi und Support auf der FH bis dato kein KDevelop installiert hatten und EMACS/Vi mir die Haare zu Berge stehen ließen (hehehe). Erst nachdem das frühe KDE mit dem KWrite installiert worden war, konnte ich gcc so richtig quälen >:) Dort auch konnte ich erstmals über das Inet Infos über C, C++ und Assembler saugen, die ich mir noch auf Diskette kopiert und daheim zerpflückt hatte. Und erst nachdem ich Inet beantragt hatte (damals noch mit nem 56kflex ALDI-Modem und Internet-By-Call Zugang), erschlossen sich völlig neue Quellen für mich, die praktisch immer zugreifbar waren und meine mittlerweile beachtliche Sammlung an Skripten, Büchern, Tuts und losen Blättern/Kopien um einiges erweitert hatte. ISDN und DSL sorgten für mehr Späßchen. Aber im Kern habe ich auch nur aus wenigen Quellen alles rauspopeln müssen, da ich fast 85% meiner Computerzeit kein Inet besessen habe bzw. kein Zugriff aufs Inet hatte. Tja, so ist das... =) --K:R-I)Z++ |
|
Profil || Suche |
|
013 05.12.2002, 08:00 King of Darkness |
boh ... bei mir war ja eher der drang nach proggen einige zeit später, so vor 1 1/2 bis 2 jahren, dementsprechend kann ich auch nich so viel aber wie kommt man darauf mit 7 8 oder 9 jahren sich da hin zu setzen und zu sagen jetz lern ich proggen, da hat man doch andere sachen im kopf, nämlich zocken, seis am pc, c64 oder amiga oder einfach nur mit kleinen legobausteinen was mich aber auch interessieren würde, kommt es spontan das ihr da sagt jetz will ich mal netzwerk code lernen oder legt ihr euch da ziele ? --Coding Center --- Tutorials über Programmierung und andere Themen |
|
Profil || Suche |
|
014 05.12.2002, 09:39 mg |
ich hab auch nen c64. Ich hatte da so viele Games, dass ich nie auf die Idee gekommen wäre, proggen zu lernen. |
|
Profil || Suche |
|
015 05.12.2002, 09:43 King of Darkness |
24 stunden HÖHÖ naja bei mir war es wie bei dir, da gabs nur games, games und nochmal games --Coding Center --- Tutorials über Programmierung und andere Themen |
|
Profil || Suche |
|
016 05.12.2002, 11:30 mg |
hört sich brutal an, kommt der Wahrheit aber wahrscheinlich am nächsten. Ich hab von nem Buch mal ein Stück Code abgetippt. Es waren zwar nur ein paar Zeilen, aber damals für meine dürftige Schreibgeschwindigkeit doch n ganzes Stück Arbeit. Als das dann nicht gefunzt hat, war ich so verärgert, dass ich nichts mehr davon wissen wollte. |
|
Profil || Suche |
|
017 05.12.2002, 11:57 King of Darkness |
lol 5 oder 6 jahre aufm BUCKL wie ds klingt wie so ein altes viech was da noch so rumkreucht und fleucht ;) das erstemal so richtig kontakt mit quellcode (um genau zu sein mit Q-Basic) war so mit 7 oder 8, das war aber noch nich so mein ding, und eben mit proggen angefangen habe ich mit 14 bis 15 (gerademal fast 2 jahre her), ich hatte mir da in den kopf gesetz das ich später spiele proggen will (was ich ja heute versuch mit einer HL mod) wuste aber nich welche sprache da wohl am besten sein wird, bis ich dann so mal richtig gehört hatte das es da n nette sprche gibt (c/c++) (das war dann so wo ich trölf war( also zwischen 11 12 und 13) hatte da aber noch nix mit i-net am hut also war es schwer an einen compiler gescheige denn an tuts oder quellcode zu kommen, dann habe ich halt gesagt ich auf mich ein buch und habe es mir mal rein gezogen und dann habe ich eben angefangen etwas mit dem code rum zu spielen (noch alles im dos modus also noch nix windoof proggs) und naja, dann is es nach und nach komplexer und teilweise unverständlich geworden, naja aber einiges habe ich dann doch noch verstanden, und nun sitze ich hier auf arbeit und schreibe SAP proggies (mit abap) aber naja ich mach ja immernoch c/c++ und ich hoffe das ich noch dieses jahr dazu komme mit opengl anzufangen, um eben meinem ziel zu folgen (spiele proggen) bis das aber soweit ist wird sicherlich noch ein oder 2 jahre vergehen (muss ja erstmal opengl begreifen ;) ) --Coding Center --- Tutorials über Programmierung und andere Themen |
|
Profil || Suche |
|
018 05.12.2002, 14:33 apfelkorn |
mh... angefangen habe ich mit programieren auf dem 286 meines Vaters mit GWBasic und habe dort meine ersten Spielchen geschrieben (Wettlauf - "Wie lautet der Vorname von Abe Lincoln?") und nun bin ich mit c am rumexperimentieren schon seit etwas mehr als 3 Jahren --Dieser Beitrag wurde am 05.12.2002 um 14:33 von apfelkorn bearbeitet. |
|
Profil || Suche |
|
019 05.12.2002, 14:55 Prefect |
King of Darkness: Wenn der Computer gleich nach dem Anschalten ein ROM-BASIC lädt und die einzigen Disketten die man hat CP/M und ein paar andere Tools wie WordStar (?), Logo (das habe ich schon damals eher gemieden *g*) und Turbo Pascal enthalten dann sucht sich der Spieltrieb eben im Programmieren seinen Lauf ;p cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
020 05.12.2002, 15:08 King of Darkness |
stimmt ich sass vor nem atari und konnte noch nichmal lesen geschweige denn schreiben und spiele gabs da haufenweise, von dem her ... --Coding Center --- Tutorials über Programmierung und andere Themen |
|
Profil || Suche |
|
021 07.12.2002, 08:05 mg |
Meine Frage hab ich nicht spaßhalber gestellt. :) Dieser Beitrag wurde am 07.12.2002 um 09:23 von mg bearbeitet. |
|
Profil || Suche |
|
022 07.12.2002, 12:38 apfelkorn |
man lernt immer neue Algorithmen, schreibt sie sich aber zum Teil auch selber. Das ist auch der ganze Sinn und Zweck der Informatik an der Uni: erm... ich verschwende zur Zeit in der Schule Delphi und Privat bin ich mit C ( im moment weniger C++) zugange, allerdings verbringe ich den Hauptteil meiner Zeit im Moment mit dem Erlernen von Theorie zu Yacc und Lex und wollte mir demnächst noch das Buch von Nikolaus Wirth "Compilerbau" kaufen. --Dieser Beitrag wurde am 07.12.2002 um 12:40 von apfelkorn bearbeitet. |
|
Profil || Suche |

