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

    [c++]Passaggio da vc++ 6 a visual c++ 2008

    Salve,

    ho trovato un' applicazione opensource sviluppata con visual c++ 6 che vorrei usare come punto di partenza per un mio progetto. Io uso però visual c++ 2008 e quando vado a montare il progetto me lo fa convertire nella versione corrente di visual c++ ma a tempo di compilazione mi dà una serie di errori quali:
    .\Terra3D.cpp(33) : fatal error C1083: Impossibile aprire il file inclusione 'gl\glaux.h': No such file or directory
    bitmap.cpp
    .\bitmap.cpp(63) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    C:\Programmi\Microsoft Visual Studio 9.0\VC\include\stdio.h(237): vedere la dichiarazione di 'fopen'
    .\bitmap.cpp(168) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    C:\Programmi\Microsoft Visual Studio 9.0\VC\include\stdio.h(237): vedere la dichiarazione di 'fopen'
    Generazione del codice in corso...
    Creazione file di informazioni di visualizzazione in corso...
    Microsoft Browse Information Maintenance Utility Version 9.00.30729
    Copyright (C) Microsoft Corporation. All rights reserved.
    BSCMAKE: error BK1506 : Impossibile aprire il file '.\Release\Terra3D.sbr': No such file or directory

    Qualcuno mi sa aiutare a capire e a risolvere questi errori?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Il primo è evidente ... manca quel file .h (o è posto in una cartella che non è raggiungibile).

    Gli altri sono warning di sicurezza ... le funzioni in questione sono "non sicure" e dovresti usare le versioni "sicure" ... se non ti interessa usa _CRT_SECURE_NO_WARNINGS (oppure ignora i warning).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Grazie ho ignorato i warning ma ora mi dà un'altra serie di errori dovuti al fatto che è stata usata una libreria gl\glaux.h appunto che ora è stata sostituita da #include <GL/glew.h> ed altri errori ancora quali

    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(303) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
    c:\programmi\microsoft visual studio 9.0\vc\include\string.h(207): vedere la dichiarazione di 'strdup'
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(443) : error C2143: errore di sintassi: ';' mancante prima di '*'
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(443) : error C2433: 'AUX_RGBImageRec': 'inline' non consentito su dichiarazioni di dati
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(443) : error C4430: identificatore di tipo mancante, verrà utilizzato int. Nota: default-int non è più supportato in C++
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(444) : error C4430: identificatore di tipo mancante, verrà utilizzato int. Nota: default-int non è più supportato in C++
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(457) : error C3861: 'auxDIBImageLoad': identificatore non trovato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(467) : error C2065: 'pImage': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(469) : error C2065: 'pImage': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(472) : error C2065: 'pImage': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(472) : error C2065: 'pImage': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(472) : error C2227: l'elemento a sinistra di '->data' deve puntare a un tipo classe, struttura, unione o generico
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(478) : error C2065: 'pImage': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(478) : error C2227: l'elemento a sinistra di '->sizeX' deve puntare a un tipo classe, struttura, unione o generico
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(478) : error C2065: 'pImage': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(478) : error C2227: l'elemento a sinistra di '->sizeY' deve puntare a un tipo classe, struttura, unione o generico
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(478) : error C2065: 'pImage': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(478) : error C2227: l'elemento a sinistra di '->data' deve puntare a un tipo classe, struttura, unione o generico
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(482) : error C2065: 'pImage': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(482) : error C2227: l'elemento a sinistra di '->data' deve puntare a un tipo classe, struttura, unione o generico
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(483) : error C2065: 'pImage': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(861) : error C2065: 'ifstream': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(861) : error C2146: errore di sintassi: ';' mancante prima dell'identificatore 'inputFile'
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(861) : error C2653: 'ios' non è il nome di una classe o di uno spazio dei nomi
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(861) : error C2065: 'in': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(861) : error C2653: 'ios' non è il nome di una classe o di uno spazio dei nomi
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(861) : error C2065: 'binary': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(861) : error C2653: 'ios' non è il nome di una classe o di uno spazio dei nomi
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(861) : error C2065: 'nocreate': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(861) : error C3861: 'inputFile': identificatore non trovato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(862) : error C2065: 'inputFile': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(862) : error C2228: l'elemento a sinistra di '.fail' deve avere una classe, struttura o unione
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(865) : error C2065: 'inputFile': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(865) : error C2228: l'elemento a sinistra di '.seekg' deve avere una classe, struttura o unione
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(865) : error C2653: 'ios' non è il nome di una classe o di uno spazio dei nomi
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(865) : error C2065: 'end': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(866) : error C2065: 'inputFile': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(866) : error C2228: l'elemento a sinistra di '.tellg' deve avere una classe, struttura o unione
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(867) : error C2065: 'inputFile': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(867) : error C2228: l'elemento a sinistra di '.seekg' deve avere una classe, struttura o unione
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(867) : error C2653: 'ios' non è il nome di una classe o di uno spazio dei nomi
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(867) : error C2065: 'beg': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(870) : error C2065: 'inputFile': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(870) : error C2228: l'elemento a sinistra di '.read' deve avere una classe, struttura o unione
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(871) : error C2065: 'inputFile': identificatore non dichiarato
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(871) : error C2228: l'elemento a sinistra di '.close' deve avere una classe, struttura o unione
    il tipo è ''unknown-type''
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1047) : error C2664: 'CreateFontW': impossibile convertire il parametro 14 da 'const char [8]' a 'LPCWSTR'
    I tipi a cui si punta sono privi di relazioni. La conversione richiede reinterpret_cast, cast di tipo C o cast di tipo funzione
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1093) : error C2227: l'elemento a sinistra di '->data' deve puntare a un tipo classe, struttura, unione o generico
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1096) : error C2059: errore di sintassi: '['
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1097) : error C2143: errore di sintassi: ';' mancante prima di '{'
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1105) : error C2275: 'TextureImage': tipo non valido come espressione
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(337): vedere la dichiarazione di 'TextureImage'
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1105) : error C2227: l'elemento a sinistra di '->sizeX' deve puntare a un tipo classe, struttura, unione o generico
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1105) : error C2275: 'TextureImage': tipo non valido come espressione
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(337): vedere la dichiarazione di 'TextureImage'
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1105) : error C2227: l'elemento a sinistra di '->sizeY' deve puntare a un tipo classe, struttura, unione o generico
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1105) : error C2275: 'TextureImage': tipo non valido come espressione
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(337): vedere la dichiarazione di 'TextureImage'
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1105) : error C2227: l'elemento a sinistra di '->data' deve puntare a un tipo classe, struttura, unione o generico
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1108) : error C2059: errore di sintassi: '['
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1109) : error C2143: errore di sintassi: ';' mancante prima di '{'
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1117) : error C2275: 'TextureImage': tipo non valido come espressione
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(337): vedere la dichiarazione di 'TextureImage'
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1117) : error C2227: l'elemento a sinistra di '->sizeX' deve puntare a un tipo classe, struttura, unione o generico
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(1117) : error C2275: 'TextureImage': tipo non valido come espressione
    c:\documents and settings\utente\desktop\renderingterreniprova\rend eringterreniprova\terra3d.cpp(337): vedere la dichiarazione di 'TextureImage'

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    A prima vista sembrerebbe che quella libreria sia pre standard e andrebbe rimaneggiata un bel po'.
    Puoi fornire un link al progetto?
    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.

  5. #5
    Molto volentieri

    http://www.gldomain.com/programs/Terra3D.htm

    Grazie anticipatamente per l'aiuto

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Originariamente inviato da micetta2482
    Grazie ho ignorato i warning ma ora mi dà un'altra serie di errori dovuti al fatto che è stata usata una libreria gl\glaux.h appunto che ora è stata sostituita da #include <GL/glew.h> ...
    Quelli sono file header non librerie ... la libreria e' la GLAux.lib ...

    Non puoi semplicemente ignorare il file glaux.h ma devi averlo tra quelli disponibili nel percorso degli include del tuo compilatore ... evidentemente manca ...

    Dopo che avrai messo a disposizione del compilatore i file

    GLAux.h e GLAux.lib

    dovrai inserire un

    using namespace std;

    all'inizio, modificare l'include <fstream.h> in <fstream> , cambiare qualche int in unsigned int ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Dunque. Dalle richerche che ho svolto sono emerse due cose:
    1) Quel progetto è obsoleto dal momento che utilizza header non standard.
    2) I file che sono usati, glaux.h e glaux.lib non sono più supportati, come detto qui:
    http://social.msdn.microsoft.com/For...8-0c131008b08f

    Qui c'è un possibile workaround al problema e usandolo il programma compila (quarto post).
    http://www.gamedev.net/community/for...opic_id=275238
    Oltre questo non posso dirti di più visto che di OpenGL non ci capisco nulla.
    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
    Grazie mille per l'aiuto proverò a fare quanto mi avete suggerito...e poi vi faccio sapere

  9. #9
    Forse sbaglio in qualcosa...ho aperto il progetto con visual c++ 2008 ed ho
    1) sostituito il codice del file bitmap.h con quello di bmp.h
    2) il codice del file bitmap.cpp con quello di bmp.cpp
    3) ho sostituito fstream.h con fstream
    4) ho eliminato la riga di #include <gl\glaux.h>
    5) ho ignorato i warning

    e fatto tutto questo mi continua a dare degli errori in compilazione.

    Shodan sicuramente tu hai molta più esperienza di me che sono alle prime armi... mi aiuteresti spiegandomi come sei riuscito a compilare il programma?

  10. #10
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    E' stata una faticaccia.
    Per prima cosa vai qui:
    http://www.opengl.org/resources/libraries/glut/
    e scarica questa voce: Pre-compiled Win32 for Intel GLUT 3.7 DLLs for Windows 95 & NT
    Il file zip contiene cinque file che devi mettere nella cartella del progetto.
    glut.lib e glut32.lib vanno aggiunti ai source files del progetto.

    Poi, non devi sostituire i file, ma devi aggiungere bmp.h e bmp.cpp al progetto. (Servono per definire e usare AUX_RGBImageRec). Aggiungi bmp.cpp al progetto.

    Poi cambia gli header file nel file Terra3D.cpp in questo modo.

    codice:
    #include <windows.h>		// Header File For Windows
    #include <cmath>		// Header File For Windows
    #include <cstdio>			// Header File For Standard Input/Output
    #include <cstdarg>		// Header File For Variable Argument Routines	( ADD )
    #include <ctime>
    #include <fstream>
    #include "glut.h"
    #include "bitmap.h"
    #include "glext.h"
    #include "bmp.h"
    
    #pragma warning(disable: 4800)
    #pragma warning(disable: 4305)
    #pragma warning(disable: 4244)
    #pragma warning(disable: 4996)  // evita gli warning di microsoft sulle funzioni insicure.
    
    using namespace std;
    Cerca la funzione LoadGLTexture nel file Terra3D.cpp, togli free(pImage->data) e free(pImage) e inserisci delete pImage ( La classe è allocata usando new, non malloc e si potrebbero verificare errori di memoria, inoltre il campo data è gestito dalla classe stessa).

    Cerca la funzione MilkshapeModel::loadModelData() e cambia:
    ifstream inputFile( filename, ios::in | ios::binary | ios::nocreate );
    con

    ifstream inputFile( filename, ios::in | ios::binary );

    (ios::nocreate non esiste più nello standard).
    Nella stessa funzione cambia:

    inputFile.read( pBuffer, fileSize );

    con

    inputFile.read( reinterpret_cast<char*>(pBuffer), fileSize );

    per evitare un errore di compilazione.

    Cambia gli header file in bitmap.cpp in questo modo:
    codice:
    #include <windows.h>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include "bitmap.h"
    
    #pragma warning(disable: 4996)
    using namespace std;
    Per gli stessi motivi di Terra3D.cpp.
    Questo per quanto riguarda il codice in se.

    Poi occorre modificare un'opzione del linker per togliere glaux.lib dal progetto.
    ALT+F7 -> Linker ->input -> Additional Dependencies.
    Togli glaux.lib

    Fatto tutto questo, a me compila e lanciando l'eseguibile da Explorer vedo l'aereo, lento, ma lo vedo.
    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.

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.