Die Anwendung konnte nicht korrekt gestartet werden (0xc0000017).



  • Danke, ich werd mal gucken, ich denke am besten ist es erstmal, zu gucken, was ich eingebaut hab bevor der Fehler auftrat, dann mal n bisschen was auskommentieren, oder wie du sagtest den Stacktrace angucken, mal sehn, was ich finde

    Falls ich den Fehler noch mal kriege, unter welchen Umständen kann der Fehler denn überhaupt auftreten?



  • Überall wo du Pointer übergibst. Simples Beispiel:

    char *getPath(){ //gibt böse Pointer zurück
        char s[] = "text.txt";
        return s;
    }
    
    void main(){
        fopen(getPath(), "r"); //gibt windows einen bösen Pointer
    }
    

    fopen wird in irgendwelche Windows-Interna weitergeleitet und der Pointer dereferenziert und dann gibts nen Segfault und der Debugger sagt dir die entsprechende dll ist abgestürzt. Ich weiß nicht, ob ntdll.dll für Dateien zuständig ist, aber das kriegt man raus.



  • Wie wärs mal mit Fehlercode nachschlage ? Das hat mit bösen Pointern nix zu tun.

    msdn schrieb:

    STATUS_NO_MEMORY

    Not enough virtual memory or paging file quota is available to complete the specified operation.

    link

    Irgendwo forderst du mehr Speicher an als verfügbar ist.



  • Danke, ich frag mich grad, ob das mit dem Zeichensatz zusammenhängen kann, ich hab nämlich vergessen, den wieder auf "nicht festgelegt" zu setzten und so KANN das eigentlich gar nicht funzen, ich probier das mal zuerst, dann mal gucken 😃
    Trotzdem Danke für die Antworten! Nun weiß ich jedenfalls, weshalb son Fehler überhaupt auftreten kann, also mögliche andere Gründe 😃


  • Mod

    boomigaard schrieb:

    Nun weiß ich jedenfalls, weshalb son Fehler überhaupt auftreten kann, also mögliche andere Gründe 😃

    Meistens tritt diese Art Fehler auf, wenn du auf uninitialisierte Variablen zugreifst und dadurch beispielsweise irgendeinen nicht-initialisierten Wert für eine Größe hast (die dann oft sehr, sehr groß sind). Wenn du dann entsprechend viel Speicher anforderst, kracht es.

    Danke, ich frag mich grad, ob das mit dem Zeichensatz zusammenhängen kann, ich hab nämlich vergessen, den wieder auf "nicht festgelegt" zu setzten und so KANN das eigentlich gar nicht funzen,

    Wenn dein Code anfällig gegen Änderungen der Zeichencodierung ist, dann ist das oftmals schon ein schlechtes Zeichen für die allgemeine Robustheit des Codes.



  • Ok am Zeichensatz liegt es schon mal nicht.
    Also entweder die ntdll.dll,
    irgendein bad-pointer,
    zuviel speicher angefordert, oder
    ich hab noch irgendwo was zu 32 und 64bit Problemen gehört, auch, dass irgendwelche leute den fehler hatten, die gar nicht mit visual studio programmiert haben, dafür habe ein programm installiert haben, dass mit VS programmiert wurde
    und dieses programm irgendwie nicht mehr ging 😃
    Meine anderen VS-Programme funzen noch, also kein VS - problem...

    mal gucken...



  • ok, ich hab n paa neu einprogrammierte Sachen auskommentiert, nun ist der Fehler immer noch da, aber die Ausgabe hat sich verändert:

    "MapEditor.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot find or open the PDB file
    "MapEditor.exe": "C:\Windows\SysWOW64\kernel32.dll" entladen.
    Das Programm "[4244] MapEditor.exe: Systemeigen" wurde mit Code -1073741801 (0xc0000017) beendet.
    

  • Mod

    http://www.c-plusplus.net/forum/304133

    Sonst können wir nicht mehr tun, als dir die Fehlermeldung zu erklären. Was bereits geschehen ist.



  • Ok, danke!!!



  • Juhu, ich hab das Problem gelöst! Ich hab in den Projekteigenschaften bei der Speicherreservierung ne Null zu viel eingegeben, sodass er statt 1GB gleich 10GB reservieren wollte, und deshalb die Meldung kam. Guter tipp von DarkShadow44

    und nocheinmal Danke für die ganzen Antworten, ist echt ein tolles Forum!

    @SeppJ: Ich les mir das mal durch, ist erst mein 2. Beitrag hier, bin noch ziemlich neu hier, Danke für den link 🙂


Anmelden zum Antworten