Programm bleibt hängen



  • hmm komisch, mein post wurde wohl net gesaved *wunder*

    Versuch mal das prog im abgesicherten modus zu compilieren.

    Weil diese Fehlermeldungen kamen bei mir scho oft; es lag immer daran, dass mein RAM voll war, und nach nem reboot ging wieder alles.

    J0



  • Wenn ich nach dem einlesen der Datei die Funktion "setCaptions" auskommentiere dann kommt die Fehlermeldung in der Project1.cpp. Die Zeile hab ich markiert

    [cpp]
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
    try
    {
    Application->Initialize();
    Application->Title = "Konfigurationstool";
    Application->CreateForm(__classid(TForm1), &Form1);
    Application->CreateForm(__classid(TForm2), &Form2);
    Application->Run();
    **} // Die Exeption kommt an dieser stelle
    **catch (Exception &exception)
    {
    Application->ShowException(&exception);
    }
    return 0;
    }[/cpp]

    Ich kann mir das einfach nicht erklären. Und das mit dem RAM kann ich mir nicht vorstellen. Hab noch genug frei und will net neu starten. Und das kommt bei zwei Projekten vor in den ich diese zwei Funktionen benutze.

    MfG
    Basti



  • Klingt für mich so als würdest du sonst irgendwo nen hund begraben haben.

    -junix



  • Ja, und den würd ich gern ausgraben 😉 Wie in der ersten Nachricht geschrieben kommt das nur wenn ich ohne "Dynamische RTL verwenden" und ohne "Mit Laufzeitpackages compilieren" compiliere und wenn ich es mit mache dann Funktioniert das Programm. Ich habe mir den kompletten Code durchgeschaut und da er relativ einfach ist geht das auch und es ist nirgends ein Fehler zu entdecken. Ich habe auch schon das Komplette Programm in ein neues Projekt übertragen aber keine Chance. Ich hoffe das irgendjemand noch einen guten Rat für mich hat.

    @junix oder V R welche BCB Version benutzt ihr? Hätte vielleicht einer mal lust es bei sich zu kompilieren ob es vielleicht an meinem PC liegt. Ich würde es als rar in einer e-Mail zukommen lassen.

    MfG und danke
    Basti



  • Hi B@sti

    Du liest mit fscanf(...) Daten ein:
      - i.a. fuer 'Text'- orirntierte Daten (Textfile oder scanf bei Tastatur)
        !!! Wenn Datei nicht genug Zeilen enthaelt(oder Fehler), wartet der auf
        neue Eingaben !!! - aus Datei kommen die nie!
      - Wie schreibst Du die Daten in die Datei
        !!! sicher: am Ende fflush(.. ) ausfuehren, sonst kann Ende der Daten
        verloren gehen!
      - ist stdio.h eingebunden - Wenn nicht, arbeiten die Funktionen u.U. unsauber!
    

    [ Dieser Beitrag wurde am 07.03.2003 um 20:16 Uhr von DerAltenburger editiert. ]



  • Hi, danke für die Tips, aber an dem Datei einlesen bzw schreiben liegt es nicht. Der Fehler taucht später auf siehe Beitrag 3 und/oder 8.
    Kann es sein das der BCB5 Pro ein prob mit Windows XP hat?
    Ich habe gerade das Update für den BCB installiert, hat sich aber auch nichts geändert.

    MfG
    Basti



  • Wann fuehrst Du setCaptions(...) aus?

    - ist die Form da schon richtig geladen
    - ist 'struktur' da schon gueltig (falls dynamisch: erzeugt?)

    Falls Du in OnCreate der Form arbeitest: probiers mal in OnActivate

    ::: unguenstig dabei, es wird spaeter wiederholt aufgerufen :::
    ::: nur zum Testen :::


  • Mod

    Hallo

    ich verwende BCB 4 prof und ich wuerde es mal uebersetzen, wenn es nict zu gross ist

    MfG
    Klaus



  • @DerAltenburger
    Das ist alle beachtet.
    Ich werde es am Monat im Büro mal kompilieren, da hab ich ein Win2K System. Ich denke immernoch das es an dem WinXP liegt. Ansonsten meld ich mich nochmal.

    Danke für eure Hilfe.

    MfG und schönen Samstagabend
    Basti



  • Hab
    ' noch 'ne Idee: 🙂

    fscanf(datei,"%s ",&struktur[i].name)

    !!! bei scanf / fscanf mit Format "%S" braucht's nicht den &- Operator (darf nicht) !!!



  • Naja, kommt drauf an, wie struktur definiert ist. Das hat uns Basti ja verwährt.



  • Also,
    unter Win2000 kommt auch ein Fehler.
    Es liegt nicht am einlesen, mein Debugger hatt mit dem einlesen kein Problem, und wenn ich den Inhalt meiner Struktur überprüfe dann steht auch alles richtig drin.
    *heul*

    Und nu?

    MfG
    Basti



  • Zeig doch 'mal Deine Struktur!

    Wann Wo und Wie erzeugst Du die passende Variable 'struktur'(statisch oder dynamisch)?



  • OK,
    habs nicht hinbekommen. Hab jetzt alles relevante in eine Datei gepackt, der aufbau ist der selbe geblieben. Der Code ist aus der "Unit1.cpp"

    Hier der Link zu der Datei: [edit] Cut [/edit]

    MfG und Danke
    Basti

    [ Dieser Beitrag wurde am 10.03.2003 um 23:37 Uhr von B@sti editiert. ]



  • Hi B@sti,

    Ich glaub' ich hab's!(???) 😉

    Du machst Dir den Speicherinhalt kaputt!!! 😕

    Du hast
    dri drink[16];

    und arbeitest mit
    for(int i=1;i <= 16; i++) das Array ab!!!

    DER INDEX MUSS ABER VON 0 BIS 15 GEHEN!

    Kontrollier mal an allen Stellen. Du screibstst hinter das Array! :p



  • Ich bin ja sooo....
    Mensch, das mir das nicht selber aufgefallen ist. Jetzt macht man schon so lang mit Strukturen und zeugs rum und dann sowas.
    Das tolle ist das der Compiler mir nie ne Fehlermeldung gebracht hat. Und wenn ich es mit den Optionen, in Nachricht 1 erklärt, kompiliert habe dann funktionierte es. Kann mir das einer erklären?

    Danke an 'DerAltenburger' und die anderen die mir geholfen haben und mal wieder geduldig waren ;).

    MfG
    Basti

    [ Dieser Beitrag wurde am 10.03.2003 um 23:18 Uhr von B@sti editiert. ]



  • Exakt erklaeren kann das keiner.

    Aber: Was genau in dem Falle passiert, ist abhaengig davon, was HINTER deinem Array im Speicher liegt.

    1.Ist das 'ne selten benutzte Variable, passiert nicht viel - Du hast nur gelegentlich falsche Daten, aber nur wenn Du auf die Variable zugreifst. 😉

    2. Ist dort Programmcode, schmiert Dir das Programm / der PC ab, sobald dieser Teil angesprochen wird 😡

    Was genau hinter dem Feld angeordnet wird steuert der Compiler, auch abhaengig von Deinen Optionen. Deshalb das verschiedene Fehlverhalten! Das haengt auch vom Typ der Variablen ab (global, lokal, static ...)! 😕

    zum Trost: Ich komm von der Pascal- ecke, da ist mir das am Anfang laufend passiert. Bei Pascal kann ein Array- Index anders liegen) Ich hatte mir damals angewoehnt, Arrays immer um 1 groesser anzulegen - das verschenkt Platz, hat aber am Ende 'nen Puffer. Mach ich aber nicht mehr!


Anmelden zum Antworten