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

    [C++]OpenFileDialog

    Ho scritto questa funzione in Visual C++ :

    codice:
    private: System::Void OpenFileMenuItem_Click(System::Object^ sender, System::EventArgs^  e) { 
    OPENFILENAME ofn; 
    char szFile[260]; 
    HANDLE hf; 
    ZeroMemory(&ofn, sizeof(ofn)); 
    ofn.lStructSize = sizeof(ofn); 
    ofn.hwndOwner = NULL; 
    ofn.lpstrFile = LPWSTR(szFile); 
    ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); 
    ofn.lpstrFilter = L"All\0*.*\0Bitmaped\0*.BMP\0"; 
    ofn.nFilterIndex = 1; 
    ofn.lpstrFileTitle = NULL; 
    ofn.nMaxFileTitle = 0; 
    ofn.lpstrInitialDir = NULL; 
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; 
    if ((OpenFileDialog(&ofn)==TRUE))  
    hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0,(LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); 
    }
    HO incluso la libreria Commdlg.h e windows.h .
    L'errore in fase di compilazione é questo:

    <function-style-cast>': impossibile convertire da 'OPENFILENAME *' a 'System::Windows::Forms::OpenFileDialog'

    Cosa posso fare?

  2. #22
    Ma che cavolo stai facendo? OpenFileDialog è il nome di una classe del .NET Framework, la funzione che cerchi è GetOpenFileName.
    E in ogni caso, perché stai facendo questo strano misto di .NET e API native? Se vuoi scrivere in C++/CLI usa le classi del framework (OpenFileDialog, StreamReader, ...).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #23
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Come già detto in altri due thread in precedenza ...

    Ma scusa, cosa non ti è chiaro?

    Se sviluppi con .NET usi la classe OpenFileDialog (ma con del codice del tutto diverso), se sviluppi con le API native (senza .NET) allora usi la GetOpenFileName ...

    Devi decidere ... finchè mischierai i due tipi di codice, avrai errori.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #24
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    59
    Scusate..
    dovevo scrivere il precedente problema in un altro thread

  5. #25
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Originariamente inviato da Elénú
    Scusate..
    dovevo scrivere il precedente problema in un altro thread
    No, devi semplicemente evitare di aprire un altro thread per lo stesso problema, e soprattutto comprendere che se il problema è la mancanza totale di conoscenza della modalità corretta di utilizzo delle funzioni all'interno del linguaggio, occorre documentarsi, e non andare per tentativi raffazzonando codice nella speranza che funzioni, mescolando tra l'altro elementi di framework e architetture diverse.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #26
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma perché continui a proporre la domanda senza rispondere a quanto ti si dice?

    Perché continui a mischiare codice managed .NET e codice nativo che usa le API?

    Così avrai sempre errori

    Se utilizzi un progetto managed, allora utilizza OpenFileDialog

    (di cui trovi documentazione in http://msdn.microsoft.com/it-it/libr...openfiledialog(v=vs.80).aspx )

    e in questo caso non devi usare quel codice che hai mostrato perché non è adatto.

    Se utilizzi le API native (GetOpenFileName) il codice va bene ma non devi creare un progetto managed.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.