Was mach ich falsch bei sdl einbinden (Beschreibung)



  • Also, ich möchte die SDL benutzen und habe mir, nachdem ich dazu einen Thread hier gefunden hatte, die notwendigen Borland-Kompatiblen Libs und Header-Dateien besorgt.

    Ich arbeite mit BCB6 und WinXP.

    Die sdl.dll habe ich in mein System32 Verzeichnis gesteckt.
    Die Libs habe ich in einn erstellten Ordner Names "sdl" in lib kopiert.
    Die Header habe ich in einen erstellten Ordner Names "sdl" in include kopiert.

    Dann habe ich ein Konsolenprojekt erstellt, Code siehe Ende.
    Dort habe ich die Compilereinstellung für enum als Int nterpretieren aktiviert
    und die Pfade für die Libs und Header mit aufgenohmen.

    Mein jetziger Code sieht so aus.

    #pragma hdrstop
    
    //---------------------------------------------------------------------------
    #include "sdl.h"
    #include "sdl_main.h"
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
            return 0;
    }
    //---------------------------------------------------------------------------
    

    Und die Fehlermeldung lautet folgendermaßen:

    [Linker Fehler] Unresolved external '_main' referenced from C:\PROGRAMME\BORLAND\CBUILDER6\LIB\C0X32.OBJ

    Nun bin ich einfach überfordert, da ich dachte so sollte es gehen, nachdem was ich bisher gelesen habe. Vielleicht kann mir jemand weiterhelfen.



  • Hilft dir das hier weiter?



  • Habs noch nicht probieren können aber ich denke mal schon, das das hilft. Danke



  • Also mir hat der Link nicht geholfen... Irgendwie versteh ich das da geschriebene wohl nicht ganz... 😞
    kann mir noch mal genau sagen, wie ich den Fehler wegbekomme?
    Dankeschoen.
    MfG Aoeke



  • Did you include the file SDL_main.c in your project ? It provides the
    main funktion, does some initialization stuff and then calls your own
    main function (which has been renamed through a macro)

    Hast Du die Datei SDL_main.c in Dein Projekt mit aufgenommen ? Es stellt die main Funktion dar, führt einige Intitialisierungen durch und ruft dann die original main Funktion auf (welche durch ein Makro umbenannt wurde).



  • Wenn ich die Datei "SDL_main.c" per '#include ...' in mein Projekt mit "aufnehme", kommt folgender Fehler:

    [C++ Fehler]sdl_main.c(243): E2268 Aufruf der undefinierten Funktion 'SDL_SetModuleHandle'
    

    in der Zeile 243 steht:

    SDL_SetModuleHandle(GetModuleHandle(NULL));
    

    Wenn ich die Datei dem Projekt hinzufuege (also per Projekt->Dem Projekt hinzufuegen...) bleibt der alte Fehler...
    MfG Aoeke



  • Aoeke schrieb:

    <snip>

    Ich kann dir jetzt zwar so nicht mi Tips weiterhelfen aber wenn du mir sagst, welches BCB du hast bzw. E-mail, kann ich dir mal ein paar meienr lauffähigen versuche zukommen lassen, dann kannste ja einfach vergleichen was bei dir so anders ist.

    Edit:
    Zitate bitte auf das Notwendigste beschränken. Danke!



  • BCB 5 Standard Edition
    AoekeTec@web.de
    Danke fuer deine Bemuehungen.. 😃



  • Sooooo. Ich habe dein Projekt jetzt einmal getestet. Solange ich es nicht ueber "Projekt -> Projekt erzeugen" erzeugen wollte, sondern nur gestartet habe lief es auch... Aber wenn ich es neu erzeugen wollte nicht mehr...
    Nach langem rumprobieren und nach einigen Anfaellen des Wahnsinns habe ich mich entschlossen, mal die aeltere Version SDL-1.2.5 runterzuladen, weil die ja schonmal bei mir lief... Naja, habe ich gemacht, Bibliotheken erstellt und dann eine neue Konsolenanwendung erstellt. *BAMM* Der Fehler war immer noch da 😡 Dann habe ich es mit einer VCL-Anwendung und einer WinApi (also ohne Konsole) versucht und siehe da, wenigstens da funktioniert es! Nur schade das mit der Konsole eben nicht.. 😞 Aber ich werde noch ein bisschen rumprobieren...
    Danke fuer eure Mithilfe.
    MfG Aoeke

    PS. Dein Programm ist voll lustig... 😃 Kannst du mir davon immer mal die Entwicklungen zuschicken? 🙂


Log in to reply