Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C/C++]Problema con GetSaveFileName()

    Salve a tutti , ho questo enorme problema che mi sta frustrando da questo pomeriggio...

    Ho usato la funziona GetSaveFileName() con relativa struttura per poter scrivere la path di salvataggio file su un IDC_EDIT .
    Tuttavia quando compilo in Release e premo il pulsante associato a tale funzione , non appare un bel niente ....
    La cosa pazzesca è ke il programma in Debug mode funziona perfettamente e la finestra di navigazione appare!

    Vi allego parte del codice :

    codice:
     OPENFILENAME ofn;
                         char PATH[500];
                         memset(&ofn,0,sizeof(ofn);
                         ofn.lStructSize     = sizeof(ofn);
                         ofn.hwndOwner       = hwndDlg;
                         ofn.hInstance       = hInst;
                         ofn.lpstrFilter     = "TXT Files(*.txt)\0*.txt\0\0";
                         ofn.lpstrDefExt     = ".txt";
                         ofn.lpstrFile       = PATH;
                         ofn.nMaxFile        = 500;
                         ofn.lpstrTitle      = "Save TextFile";
                         ofn.Flags           =  OFN_EXPLORER | OFN_OVERWRITEPROMPT;
    
    
                     if(GetSaveFileName(&ofn))
                    SetDlgItemText(hwndDlg,IDC_EDIT,PATH);
    Tuttavia ho notato che se metto PATH[50] invece funziona tutto ! ma come ben sapete , 50 caratteri per una path sn troppo pochi

    Dove è ke sbaglio ?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Utilizza la costante MAX_PATH di Windows per la lunghezza massima del path e inizializza il nome del file

    char PATH[MAX_PATH] = {0};

    poi utilizza

    ofn.nMaxFile = MAX_PATH;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    uhm , se la inizializzo mi da errore

    codice:
    error: crosses initialization of 'char PATH[260]'

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Il codice in questione è all'interno di un case ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Risolto !

    ho messo una {} tra il "case"e il "break" , come suggeritomi da una ricerca su google...

    Cmq e' c++ con compilatore mingw e ide Code::Blocks !

    Grazie 1000

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Originariamente inviato da Avanaboy
    ho messo una {}
    Se solo avessi mostrato prima che stava in un case ...

    Grazie 1000
    Di nulla, importante che funzioni ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.