NSA - Non Solo Amiga
SOFTWARE => Linguaggi di programmazione e scripting => Topic aperto da: raistlin77it - 06 Marzo 2012, 21:16:56
-
mi sono fatto dare i sorgenti si un giochino per win e osx, il tutto è scritto in c++.
Naturalmente l'autore usa VS, mentre io lo porterei su MOS col gcc
Oltre ad un pacco di librerie che su mos non ci sono, mi stò accorgendo che al momento del compile (per ora ho come target windows) il Gcc si imbizzarrisce su di un sacco di typecast non presenti.
in effetti il programma ad esempio somma float e interi e ritorna interi..........
Possibile che visual studio non dia errori ed il programmatore originario non se ne sia accorto ?
non c'è un metodo per non smazzarsi un centinaio di typecast da aggiungere a manina?
-
in effetti il programma ad esempio somma float e interi e ritorna interi..........
Non mi sembra che sia una causa di errore questa. Un warning si magari, ma non certo un errore.
Puoi dare un esempio di una riga incriminata?
Possibile che visual studio non dia errori ed il programmatore originario non se ne sia accorto ?
Può darsi; io stesso lavoro a un progetto usando gcc e un mio amico con VC++, e certe volte quest'ultimo non segnava errori e gcc si, ma ripeto, non mi pare ci sia una causa di errore.
-
quindi anche se io ho un centinaio di
"258 C:UsersRaistlin77itDesktopsrc_game.cpp [Warning] passing `float' for converting 1 of `void GLInterface::InitGL(int, int, int, int, float)' "
faccio finta di nulla?
-
quindi anche se io ho un centinaio di
"258 C:UsersRaistlin77itDesktopsrc_game.cpp [Warning] passing `float' for converting 1 of `void GLInterface::InitGL(int, int, int, int, float)' "
faccio finta di nulla?
Beh si è un warning, non un errore, quindi non ti impedirà di compilare il programma.
Visto che il programma già funzionava, potresti ignorarli tranquillamente; potresti anche guardarli uno a uno se hai voglia e vedere se quelle conversioni son proprio necessarie (ad esempio, se quel parametro di InitGL è la larghezza della finestra, è strano che fosse in una variabile float).
-
(ad esempio, se quel parametro di InitGL è la larghezza della finestra, è strano che fosse in una variabile float).
in effetti era quello il mio dubbio, ovvero, visto che già devo cambiare parti di codice, sarebbe meglio che il sorgente originale non generasse tanti warning, sennò non so più di chi è la colpa :D
Comunque vedrò di fare finta di niente visto che il c++ fà un "typecast in automatico"
-
OT
E' curioso...io ottengo invece molti warning sul VC++2010 che lo GCC 4.6.1 su Linux non mi dà (stesso identico sorgente!)
/OT
-
Quando ho lavorato all'STM i warning non dovevano esistere, su qualunque compilatore veniva usato (Visual C 6, GCC/cygwin, e GCC su piattaforma proprietaria per la loro architettura LX).
In generale anche per codice mio mi dà molto fastidio la presenza dei warning, per cui cerco di eliminarli. Mi danno ancora più fastidio quelli generati anche con codice corretto (ad esempio se non uso un parametro, però quella funzione/metodo è un'API che espone un'interfaccia all'esterno e che in futuro potrebbe usarlo).
-
Assolutamente d'accordo.
-
mi avete convinto.
in effetti in barba a tutti i warning il programma compila e funziona :P
-
Io avevo problemi simili quando sviluppavo videogames multiplatform.
Lo stesso codice doveva compilare, warning-free (usavamo il flag di compilazione "Warning as Error" che blocca la compilazione al primo warning), su Visual Studio C++ per Windows, per XBox 360 (con plugin XBox Development Kit), GCC (sempre Visual Studio ma con target GCC / PS3) e SNC (sempre Visual Studio ma con compilatore proprietario Sony).
Ancora mi viene da piangere, specialmente per i template che GCC implementa in modo, diciamo, "creativo" :lol:
-
diciamo che il c++ ad ogni istruzione come sappiamo cancella la memoria oppure la libera e cmq è probabile che ti dia degli avvisi ma nn ti dice che c'è un errore;
ad ogni modo visual studio è il dicindente del visual basic, ecco il visual basic da molti errori ma nn come il c++ ad ogni modo spero che tu abbia risolto il problema ;)
-
eh? :think:
-
diciamo che il c++ ad ogni istruzione come sappiamo cancella la memoria oppure la libera e cmq è probabile che ti dia degli avvisi ma nn ti dice che c'è un errore;
ad ogni modo visual studio è il dicindente del visual basic, ecco il visual basic da molti errori ma nn come il c++ ad ogni modo spero che tu abbia risolto il problema ;)
non ho capito bene il visual studio è il dicindente del visual basic
comunque sì sono riuscito in barba a tutti i warning a far funzionare il port :D
-
diciamo che il c++ ad ogni istruzione come sappiamo cancella la memoria
Oddio! :o
Ma esiste un modo per recuperarla ? Io uso il C++ tutti i giorni, rivoglio indietro la mia ram!!! :evil:
-
Di che ti lamenti? Quelli di Mozilla tendono a tenersela. :lol:
-
@Commodore Pet
Mi sembri nuovo del forum :) Benvenuto! :mrgreen:
-
si avevo scritto male io dicevo che il visual studio fa parte del visual basic :doh:
-
grazie :D