Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Passaggio da visual c++ 6.0 a visual c++ 2008 express. Ho dei problemi con fstream.h

    Salve a tutti. Avevo scritto un programma senza GUI con il visual c++ 6.0, ed adesso devo renderlo grafico utilizzando visual c++ 2008. Ho creato il progetto ed ho aggiunto il vecchio file, sperando che fosse compatibile almeno nella maggior parte. Invece purtroppo non è così. Ad esempio nel 6.0 utilizzavo fstream per gestire i file con oggetti di classe ifstream ed ofstream, ma con il 2008 express mi ignora il file (sia con che senza il .h) dandomi questo errore
    codice:
    e:\rubrica.cpp(6) : warning C4627: '#include <fstream.h>': ignorato durante la ricerca dell'utilizzo di un'intestazione precompilata
    Aggiungere la direttiva a 'stdafx.h' o ricompilare l'intestazione precompilata
    fa lo stesso anche con windows.h

    ovviamente ignorando il file tutto ciò che necessita di quel file è considerato un errore.
    Spero che non debba riscrivere tutto da capo....
    Vi prego aiutatemi che non riesco a venirne a capo. Grazie infinite in anticipo. Cordiali saluti

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    prova a sostituire

    codice:
    #include <fstream.h>
    
    con
    
    #include <fstream>
    
    oppure
    
    #include "fstream.h"
    lo stesso con windows.h..

    poi facci sapere

  3. #3
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Ciao . . . Forse non ho capito bene, vuoi convertire un applicazione console in un applicazione ad interfaccia grafica??? Sai che sono molto differenti l' una dall' altra???

  4. #4
    Gli header corretti sono <fstream> (senza il .h) e <windows.h> (con il .h). Probabilmente il nuovo progetto è pensato per avere un file di intestazione precompilata (stdafx.h). Se ritieni che sia comodo averlo, crea un nuovo file (stdafx.h) e includi lì tutti gli header che devono essere inclusi in ogni file .cpp del tuo progetto, e quindi includilo in tutti i file .cpp (#include "stdafx.h"). In alternativa cerca tra le proprietà del progetto la voce "Usa file di intestazione precompilata" (o qualcosa del genere) ed impostala a "No".
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Originariamente inviato da KrOW
    Ciao . . . Forse non ho capito bene, vuoi convertire un applicazione console in un applicazione ad interfaccia grafica??? Sai che sono molto differenti l' una dall' altra???
    Ciao. Convertire era un modo di dire.
    Intendevo dire di creare una interfaccia grafica che utilizzasse le stesse funzioni create in precedenza con visual studio 6.0. in sostanza il motore resta più o meno lo stesso, ma cambia l'aspetto grafico

  6. #6
    Originariamente inviato da Stoicenko
    prova a sostituire

    codice:
    #include <fstream.h>
    
    con
    
    #include <fstream>
    
    oppure
    
    #include "fstream.h"
    lo stesso con windows.h..

    poi facci sapere
    #include <fstream>
    sempre 102 errori, la maggior parte dei quali molto strani che non c'entrano col mio codice ma con altre cose

    #include "fstream.h"
    le virgolette indicano che il file si trova nella cartella del progetto. Non essendoci, la compilazione si ferma

  7. #7
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Hai messo using namespace std; ?
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  8. #8
    Originariamente inviato da MItaly
    Gli header corretti sono <fstream> (senza il .h) e <windows.h> (con il .h). Probabilmente il nuovo progetto è pensato per avere un file di intestazione precompilata (stdafx.h). Se ritieni che sia comodo averlo, crea un nuovo file (stdafx.h) e includi lì tutti gli header che devono essere inclusi in ogni file .cpp del tuo progetto, e quindi includilo in tutti i file .cpp (#include "stdafx.h"). In alternativa cerca tra le proprietà del progetto la voce "Usa file di intestazione precompilata" (o qualcosa del genere) ed impostala a "No".
    Ciao. Purtroppo sia che usi #include "stdafx.h" o che includa manualmente in ogni file #include <fstream> non mi viene bloccato ma è come se non esistesse, perchè da errore in tutto quello che dovrebbe essere gestito da lui, come per esempio gli oggetti ifstream ed ofstream. per i MessageBox mi dice che sono ambigui
    codice:
    c:\documents and settings\utente\desktop\rubrica\rubrica\Form1.h(239) : error C2872: 'MessageBox': simbolo ambiguo
            potrebbe essere 'C:\Programmi\Microsoft SDKs\Windows\v6.0A\include\winuser.h(7374): int MessageBox(HWND,LPCTSTR,LPCTSTR,UINT)'
            o 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll: System::Windows::Forms::MessageBox'
    se incluso winuser.h senza windows.h mi da una serie di errori nel file winuser.h, anche se non l'ho mai modificato. se invece incudo anche windows.h non da errori a winuser..
    ma non potevano mantenere la compatibilità con i vecchi file di inclusione?
    Grazie ancora per l'aiuto

  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    A cosa servono queste intestazioni precompilate?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    Problema MessageBox risolto. ho sostituito MessageBox con ::MessageBox
    sembrerebbe che non ci siano più errori riguardo a fstream.

    per risolvere il problema fstream ho aggiunto using namespace std come suggerito da un altro forum

    ora mi restano 16 errori.

    sapreste aiutarmi per risolvere questo su strcat?
    codice:
    .\Rubrica.cpp(532) : error C2664: 'strcat': impossibile convertire il parametro 2 da 'char *(__clrcall *)(int,char *)' a 'const char *'
            Non vi sono contesti in cui sia possibile eseguire questa conversione

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.