Seltsame Fehlermeldung



  • An dem QC-Eintrag soll wohl nen Anhang sein an dem die genannten Schritte vollzogen werden können. Ich sehe den Anhang aber nicht. Für dich ist das zitierte irrelevant. Ne Lösung steht da auch nicht.

    mfg
    xXx



  • Am Quelltext scheints auch nicht zu liegen... Weil wenn ich ganz früh im Text einen Haltepunkt markier, also quasi weniger Text habe, kommt trotzdem die Fehlermeldung. Aber am Projekt selbst scheints trotzdem zu liegen, denn bei allen anderen Projekten funktioniert alles...
    Nochmal zu Info: Der Fehler kommt beim Linken.

    gruß Schnebs



  • Schnebs schrieb:

    Nochmal zu Info: Der Fehler kommt beim Linken.

    Da nütz dir auch ein Haltepunkt nix...

    versuch mal den Fehler einzugrenzen:

    Variante 1:
    kommentier allen Quellcode innerhalb von Funktionen aus, dann versuch zu compilieren,
    wenn der Fehler nicht mehr kommt, kommentier pro Funktion den Quellcode wieder ein und compilier dazwischen immer wieder bis du den entsprechenden Quellcodeabschnitt gefunden hast wo der Fehler auftritt,
    wenn der Fehler trotzdem noch vorhanden ist -> Variante 2 oder 3

    Variante 2:
    mach ein komplett neues Projekt und füge den Quellcode stückchenweise wieder hinzu, nach jeder Funktion wieder compilieren, wobei es hierbei zu Fehlern durch noch fehlende Funktionen kommen kann,
    die Komponenten kannst du ja aus dem alten auf das neue Form kopieren

    Variant 3:
    lad den Quellcode einschließlich aller benötigten Datei irgendwo hoch und poste den Link, allerdings nicht als exe oder rar, und dann schaut wahrscheinlich mal jemand drüber 😉

    ich weiß, das ist ziemlich viel Quellcode, aber irgendwie willst du ja weiterkommen, oder nicht?

    [Edit] von welcher BCB-Version reden wir hier eigentlich?



  • Hallo,

    habe jetzt den Ordner als .rar hochgeladen.

    http://www.filefront.com/14148795/projekt.rar

    Wir reden von Version 6.

    gruß Schnebs



  • Hatte der BCB6 nicht Probleme mit mehr als 65000 Zeilen in einer Datei?
    Ich hätte nie gedacht, das jemand wirklich diese Grenze ausreizt... 😮

    mfg
    xXx



  • Echt? Ist das so?? Wenn ja dann ist das blöd.... Gibts da denn Alternativen? Weil, ich hab ziehmlich viel Zeit und Arbeit da reingesteckt...

    gruß Schnebs



  • Hallo

    Falls du wirklich 70.000 Zeilen in einer einzelnen Quellcode-Datei hast...
    dann verteile diese Zeilen in verschiedene neu anzulegende Dateien. Dazu must du nur den Menüpunkt "Datei/Neu..." aufrufen und in der folgenden Liste "Unit" auswählen. In den neuen Units erstellst du dann sinnvolle Unterfunktionen, in die du den Code auslagerst.

    bis bald
    akari



  • -=]xXx[=- schrieb:

    Hatte der BCB6 nicht Probleme mit mehr als 65000 Zeilen in einer Datei?
    Ich hätte nie gedacht, das jemand wirklich diese Grenze ausreizt... 😮

    mfg
    xXx

    Tatsächlich, jetzt wo du das sagst, kann ich mich sogar dunkel an einen Thread hier im Forum erinnern...

    Versuch doch mal deienn Code zu splitten und ihn auf mehrere Dateien aufzuteilen! Vielleicht war das auch die Botschaft der seltsam übersetzen Website, die du gepostet hast 🙂

    Da stand doch irgendwas von "großes Papier" und nun "zerteilt"?!

    LG, Micha



  • Also wenn ich mir den Quelltext mal so überfliege, täten einige Grundlagenkenntnisse bestimmt nicht weh... Angeblich soll es sowas wie Arrays (vector) geben, Klassen, Objekte, Design Pattern (MVC) etc..

    Ich hab selten mal Dateien die signifikant über 1000 Zeilen haben

    mfg
    xXx



  • -=]xXx[=- schrieb:

    Also wenn ich mir den Quelltext mal so überfliege, täten einige Grundlagenkenntnisse bestimmt nicht weh...

    Genau!

    @Schneps: Die QuellZeilen aus deinem Eingangspost könnten z.B. eine Schleife vertragen... ;o)

    MfG



  • Hi,

    um die Herkunft der Fehlermeldung etwas zu erhellen; nach einer Volltextsuche im Verzeichnis des BCB6 nach
    import.cpp findet sich in der ilink32.dll als auch ilink32.exe :

    StringBlock Type names External types Public types SegRelocs Line number cache OBJ symbols Import symbols Publics Public GSX Extdefs Extdef flags Virdefs 
    Config [b]C:\src\ilink\import.cpp[/b] BlockIndex >= 0 && BlockIndex < sizeof(MemConfig) / sizeof(MemConfig[0]) Config->CurrentSize >
    


  • ich kann -=]xXx[=- nur zustimmen, außerdem fehlt eine ordentliche Einrückung und die if-Bedingungen kann man mit ODER (||) oder UND (&&) zusammenfassen

    ich schätze mal mit Arrays, Klassen, ordentlichen Schleifen und Abfragen in seperaten Funktionen kann man den Quellcode glatt halbieren...



  • Linnea schrieb:

    [...]

    ich schätze mal mit Arrays, Klassen, ordentlichen Schleifen und Abfragen in seperaten Funktionen kann man den Quellcode glatt halbieren...

    Oder anders herum: Wenn ich meine Quelltexte in aneinandergereihte Anweisungen "auflösen" würde, wäre der Quelltext - geschätzt - 10mal so lang! 😉



  • Hallo,

    also erstmal danke für eure Hilfe. Ich habe den Code jetzt erstmal auf unter 65.000 Zeilen gedrückt. Nun kommt aber immernoch die Fehlermeldung... Also scheints daran anscheinend auch nicht gelegen zu haben. Und ohne jetzt auch den ganzen Text umschreiben zu müssen. Gibt es da nicht andere Kompilierer mit denen ich den Text kompilieren kann?

    gruß Schnebs



  • Ach mist, was vergessen.
    Wie geht das genau mit dem "Text auslagern"? Kann mir das vll jemand näher erklären?

    gruß Schnebs



  • hast du mal RandomAccess85 und Akaris Vorschlag versucht?

    [Edit]
    Menu -> Datei -> Neu -> Unit
    dann z.b. eine komplette ButtonClick-Methode aus deiner Haupt-cpp in die neue Unit schieben (einschließlich Funktionskopf)
    die neue Unit speichern
    dann in der alten Unit einfügen (ganz oben)

    #include "name-der-neuen-unit.h"
    

    und dann sollte das gehen

    allerdings mußt das mit einigen Funktionen machen...

    noch etwas: was du da machst nennt man übrigends Fleißarbeit, hat aber leider nicht viel mit programmieren zu tun 🙄

    [Edit2]
    naja, ok, ganz so einfach ist es nicht, da du haufenweise globale Variablen verwendest

    die ganze Variablen vom Anfang deiner Unit mußt du mal in die Header-Date verschieben

    dann in der neunen Unit einfügen (ganz oben)

    #include "name-der-alten-unit.h"
    


  • So, habe nun das meiste in eine 2te Datei ausgelagert und die Fehlermeldung ist weg. Nun ist, wie gesagt, das Problem, dass die, in der ersten Datei bereits geänderten Variablen, nicht in der 2ten Datei sind. Also, ich kann die Variablen deklarieren aber sie ändern sich halt nicht bzw, die 2te Datei bekommt davon nichts mit. Wie kann ich das ändern?

    gruß Schnebs



  • Linnea schrieb:

    [Edit2]
    naja, ok, ganz so einfach ist es nicht, da du haufenweise globale Variablen verwendest

    die ganze Variablen vom Anfang deiner Unit mußt du mal in die Header-Date verschieben

    dann in der neunen Unit einfügen (ganz oben)

    #include "name-der-alten-unit.h"
    


  • Mhhh ich frage mich nur gerade warum du krampfhaft versuchst, Unsinn zum laufen zu bekommen...
    Versuch doch mal, nicht den BCB so zu manipulieren, das er deinen Code frisst, sondern den Code so zu ändern, das er "gut" ist.

    Beispiele:
    Die globalen Variablen (das ab Zeile 10) die du hast, könnten z.B. in eine GameController-Klasse

    class GameController
    {
    String Server;
    int ErrorCode;
    int Schwertkaempfer ;
    int Kaserne11;
    int Baeckerei11;
    int Baeckerei22;
    int Holzfaeller11;
    int Holzfaeller22;
    int Nahrung;
    int Holz;
    int Muehle;
    int Markt;
    
    int BauplatzA[19];
    }
    

    Wissenschaft präsentiert: Klassen und Arrays... Viel Spass beim Nachbauen.
    Allein durch die Benutzung von Arrays, Schleifen und Objekte die mehrere Eigenschaften zusammenfassen wirst du deinen Quelltext auf bestimmt 5000 Zeilen verringern können.

    mfg
    xXx



  • Mhhh ich frage mich nur gerade warum du krampfhaft versuchst, Unsinn zum laufen zu bekommen...

    Weil ich den Unsinn nicht groß umschreiben will. Ich mache jetzt so weiter wie ihr mir gesagt habt. Aber ich will erstmal das alte zum Laufen bringen. Ich will nämlich nicht viel Zeit aufwänden, für Sachen, die eigl schon fertig sind.


Anmelden zum Antworten