Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59

    [C++]Open file

    Salve,
    ho scritto il seguente codice da utilizzare all'interno di un'interfaccia grafica:
    codice:
    OPENFILENAME ofn; 
    char szFile[260]; 
    HWND hwnd; 
    HANDLE hf; 
    ZeroMemory(&ofn, sizeof(ofn)); 
    ofn.lStructSize = sizeof(ofn) ;  
    ofn.lpstrFile =(LPWSTR) szFile; 
    ofn.nMaxFile = sizeof(szFile); 
    ofn.lpstrFilter =(LPCWSTR) "All\0*.*\0Text\0*.TXT\0";  
    ofn.nFilterIndex = 1;  
    ofn.lpstrFileTitle = NULL;  
    ofn.nMaxFileTitle = 0;  
    ofn.lpstrInitialDir = NULL;  
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

    Utilizzo il Visual C++. Quello che devo fare é far funzionare il bottone OPEN di questa interfaccia. Mandando in esecuzione il codice precedente, scritto all'interno del main,non succede nulla. Cosa devo fare?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,469
    Se prepari solamente la struttura senza chiamare la API, non può succedere nulla ...

    Devi chiamare la

    GetOpenFileName
    http://msdn.microsoft.com/en-us/libr...sktop/ms646927(v=vs.85).aspx

    passando il puntatore della struttura alla funzione in questo modo

    GetOpenFileName(&ofn);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    Ho aggiunto al codice precedente all'interno del main queste righe:

    codice:
    if (GetOpenFileName(&ofn)==TRUE)  
    hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL);
    Successivamente all'interno dell classe.h dove ho scritto l'interfaccia grafica devo scrivere:
    GetOpenFileName(&ofn) ??

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,469
    No ... cosa dici?

    Questa linea

    if (GetOpenFileName(&ofn)==TRUE)

    richiama la funzione di apertura della dialog box per la scelta del file (che era quello che mancava)

    Perché chiedi di inserire la chiamata nuovamente?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    ok.
    Ci sono peró degli errori quando faccio il debug..errori tipo : TOKEN NON RISOLTO riferendosi alla funzione GetOpenFileName

  6. #6
    Hai incluso <windows.h>?
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    Si.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    Quale puó essere il problema?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,469
    Di quale ambiente/compilatore parliamo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    Visual C++ 2008 Express

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.