EWin32Error beim 2 Anzeigen des Fensters


  • Mod

    Hallo

    der Fehler

    Win32-Fehler. Code: 87. Der Parameter stimmt nicht.

    tritt auch auf bei zuwenig freien Recourcen auf

    MfG
    Klaus



  • Der Link zu deinem Projekt funktioniert nicht.
    Dein aktueller Beispielcode hingegen funktioniert problemlos.



  • Ich konnte den Fehler jetzt mehr oder weniger eingrenzen. Der tritt nur beim BCB auf. Wenn ich aber mit Delphi (dieselbe Version) kompiliere funktioniert es auch. Ich versuche wenn ich die BCB-CD finde es neu zu installieren. (Wenn es etwas bringt).

    @Jansen: Den Quelltext habe ich wieder entfernt, deswegen geht der Link auch nicht. Das Projekt wird aber sowieso open source, wenns fertig ist.



  • Ich konnte den Fehler jetzt beheben. Eine Neuinstallation hat nichts gebracht. Dann habe ich mit den Compilereinstellungen rumgespielt. Wenn man das Programm mit Laufzeitpackages kompiliert kommen diese Fehler nicht vor. Wieso weiß ich aber immer noch nicht, früher (und in Delphi) hat es ohne auch funktioniert.



  • Ich mach dynamische Forms so:
    
        Application->CreateForm(__classid(TScreenShotWin), &ScreenShotWin);
        ScreenShotWin->Visible=true;
        .
        .
        .
        ScreenShotWin->Close();
        delete ScreenShotWin;
    
    da hats keine Probleme. Die 2 Sequenzen stehen in verschiedenen Funktionen!!!
    
    Anstelle von
        ScreenShotWin->Visible=true;
    koennte man
        ScreenShotWin->ShowModal();
    machen
    


  • @DerAltenburger: Wenn ich ohne Laufzeitpackages kompiliere funktionierts auch nicht.



  • Also bei mir is das egal - mit oder ohne Laufzeitpackages. ???

    Wo machst Du das? Bei mir hats nur Probleme, wenn ich das in WinMain mache. da ist das HauptForm noch nicht initialisiert. Speziell wenn ich nen Splash- Screen machen will mit ner Form die einen Timer benutzt!

    Sonst hab ich noch nie Probleme gehabt!

    Komisch isses schon?



  • Ich erstelle die Forms im Hauptformular.
    wie ich schon schrieb lief es früher bei mir auch ohne Runtimepackages, und unter Delphi (dieselbe Version: 5) läuft es ohne Probleme.

    EDIT:
    Das einzige was ich mir im Moment vorstellen kann, ist dass es an irgendwelchen Kompilereinstellungen liegt, auch wenn dort auf den ersten Blick alles wie früher aussieht.



  • Wird das Formular sauber aus Speicher entfernt?

    Startest Du in der Form einen Thread, der ev. weiterlaeuft? Ev. nicht terminiert?

    Ich hatte sowas mal im Hauptform. Der Thread lief beim Programmende im RAM weiter - wie der das auch immer gemacht hat. Da gabs immer ne Windowsfehlermeldung beim Beenden. Erst nachdem ich den Thread beim Beenden Terminieren lasse, ist das Problem weg.

    PS: dasselbe hatte ich mit einer Kompo, die ein animiertes GIF anzeigt. Die Animation muss vor Programmende gestoppt werden.



  • Ob es vollständig aus dem Speicher entfernt wird, weiss ich nicht, wahrscheinlich schon.
    Das ganze läuft bei mir in einem Thread.
    Also ich starte BCB.
    Wähle "Neue Anwendung" aus.
    Erstelle ein 2. Formular
    in das 1. füge ich ein Button ein.
    Und inkludiere in Unit1.cpp die Unit2.h
    im OnClick-Ereignis des Buttons erstelle ich dann das Formular 2 mal nacheinander und zerstöre es wieder.

    Also alles wie mans normal macht, nur funkts nicht bei mir.

    PS: Gibt es eigentlich irgendwelche Nachteile wenn man mit Laufzeitbibliotheken kompiliert. Wenn nicht dann lasse ich es so. Hauptsache ich kann damit dann arbeiten.



  • Das ist ja putzig. 😮

    Vielleicht mal BCB neu installieren?

    mit Bibliotheken (Runtime / Packages) compilieren macht die Exe i.a. kleiner, dafuer werden die Bibliotheken auf dem Zielrechner gebraucht.

    Dann muessen die Borland und ev. eigene Bibliotheken mitgegeben werden.

    PS: wenn Du die Form2 dyn. erzeugst, darf diese nicht in WinMain erzeugt werden!!!


Anmelden zum Antworten