Tetris - Bitte testen II



  • WebFritzi schrieb:

    DrGreenthumb schrieb:

    TCHAR fn[MAX_PATH];
    GetTempPath(MAX_PATH, fn);
    strcpy(fn + lstrlen(fn), str_id);

    Das läuft über wenn der Pfad länger als MAX_PATH/2 ist.

    Wieso das? 😕

    @Optimizer: Wo liegt denn dein TEMP-Pfad?

    C:\Users\Michael\AppData\Local\Temp\
    Da drin hast du alle Rechte, die du dir nur wünschen kannst.

    WebFritzi schrieb:

    Kann das evtl. mit fehlenden Admin-Rechten zusammenhängen?

    Ich weiß nicht, was du sonst noch so machst. Als Admin führe ich das Programm nicht aus, ich habe jetzt aber auch keine besonders restriktiven Rechte. Du kannst mir ja mal dein Programm komplett schicken, dann sag ich dir die Code-Zeile. Amsonsten ist mir im ProcessMonitor auch nichts ungewöhnliches aufgefallen, aber ich kenn mich mit dem Teil auch nicht aus.



  • WebFritzi schrieb:

    DrGreenthumb schrieb:

    TCHAR fn[MAX_PATH];
    GetTempPath(MAX_PATH, fn);
    strcpy(fn + lstrlen(fn), str_id);

    Das läuft über wenn der Pfad länger als MAX_PATH/2 ist.

    Wieso das? 😕

    Wie ich da auf MAX_PATH/2 gekommen bin weiß ich jetzt auch nicht mehr; war schon spät.

    Kann aber trotzdem überlaufen. GetTempPath schreibt u.U. den ganzen Buffer voll und dann schreibst du noch die str_id dahinter.



  • DrGreenthumb schrieb:

    WebFritzi schrieb:

    DrGreenthumb schrieb:

    TCHAR fn[MAX_PATH];
    GetTempPath(MAX_PATH, fn);
    strcpy(fn + lstrlen(fn), str_id);

    Das läuft über wenn der Pfad länger als MAX_PATH/2 ist.

    Wieso das? 😕

    Wie ich da auf MAX_PATH/2 gekommen bin weiß ich jetzt auch nicht mehr; war schon spät.

    Kann aber trotzdem überlaufen. GetTempPath schreibt u.U. den ganzen Buffer voll und dann schreibst du noch die str_id dahinter.

    Ja, stimmt. Ist nicht bombensicher. Ich habe es angepasst:

    BOOL CMidiFile::LoadFromResource(LPCTSTR res_name, LPCTSTR str_id)
    {  // str_id is a string id which. Choose one per song.
       LPTSTR fn;
       DWORD buf_len = GetTempPath(0, NULL);
       fn = new TCHAR[buf_len + lstrlen(str_id) + 1];
       GetTempPath(buf_len, fn);
       lstrcpy(fn + lstrlen(fn), str_id);
    
       if( !PathFileExists(fn) )
       {
          ...
    

    EDIT: Habe die EXE geupdatet. Könntest du die neue EXE nochmal bitte bei dir testen, Optimizer.



  • Ist nicht behoben.



  • @Opti: Hätte nicht damit gerechnet, dass du so schnell bist. Hab es da noch nicht raufgeladen gehabt. Bitte bitte nochmal. 🙄

    EDIT: Du erkennst die neue EXE daran, dass sie größer ist als vorher.



  • Ok, ist aber immer noch.
    Größe der .exe: 297.984 Bytes



  • Optimizer schrieb:

    Größe der .exe: 297.984 Bytes

    Äh, nö. Wo hast du die denn her? Wenn ich mir das ZIP-File runterlade und dann entpacke, hat die entpackte EXE eine Größe von 692.736 Bytes. 😮



  • Von deiner Seite und da krieg ich immer noch genau die selbe her.





  • Hä? Wenn ich auf deinen geposteten Link gehe, die Datei herunterlade und dann entpacke, hat die EXE die von mir oben angegebene Größe. Hat das was mit deinem Cache zu tun oder so? 😕 Auf dem Server ist nur noch diese eine Tetrissimo-Datei. Die neue halt. 😕 😕 😕



  • Frickelfox halt. Die access violation ist jetzt eine andere: Zugriff auf Adresse 00000002. Wieder beim Starten des Spiels, wie vorher.



  • Danke für's Testen. Auch in der SHLWAPI.DLL? Ich würd dir ja gerne mein ganzes Projekt schicken, aber ich habe deine Email-Addi nicht. Meine ist webfritzi[bei]gmx.de.



  • Hallo

    WebFritzi schrieb:

    webfritzi[bei]gmx.de.

    Wie sieht denn das Zeichen für "[bei]" aus? 😃

    chrische



  • michael.firbach bibbeldibabbeldidu gmx.de



  • Fein, dann schicke ich dir mal ne Mail.



  • Hmmmm gestaltet sich schwierig (siehe Mail). Bau doch mal hundert MessageBoxen ein, dann sehen wir ja, wie weit er bei mir kommt.


Anmelden zum Antworten