matteog (Normal User)
Pro
Messaggi: 149
Iscritto: 10/04/2009
|
salvè stò scrivendo una classe per la gestione delle stringhe nell'overloading degli operatori eseguo queste operazioni:
Codice sorgente - presumibilmente C++ |
stringa operator >=(const stringa& a,const stringa& b) { int mem1=0,mem2=0; mem1=strlen(a.str); mem2=strlen(b.str); stringa risp; if(mem1>mem2) { strcpy(risp.str,"è maggiore "); } else if(mem1==mem2) { strcpy(risp.str,"le due stringhe sono lunghe uguale"); } else { strcpy(risp.str,"è minore"); } return risp.str; }
|
il fatto stranoè che tutte le volte che compilo mi dà i seguenti errori:
warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
Non sò come fare per rimuovere questi warning cosa devo modificare?? aiutatemi!
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Non e' un fatto strano e il messaggio del warning è chiaro.
Al posto della strcpy usa la funzione strcpy_s
oppure usa una
#pragma warning (disable:4996)
oppure ignora i warnings.
Ultima modifica effettuata da nessuno il 05/01/2010 alle 12:39
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
matteog (Normal User)
Pro
Messaggi: 149
Iscritto: 10/04/2009
|
il fatto è che se metto la strcpy_s vuole sapere nei parametri quanta memoria deve usare il mio probblema è che non sò questo parametro e è difficile lasciare stare gli warning perchè nel programma uso quelle funzioni una ventina di volte e sono 20 warning!
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Postato originariamente da matteog:
il fatto è che se metto la strcpy_s vuole sapere nei parametri quanta memoria deve usare il mio probblema è che non sò questo parametro |
Come non hai questo parametro? E' la lunghezza di quello che copi ... forse non hai capito come si usa la strcpy_s
e è difficile lasciare stare gli warning perchè nel programma uso quelle funzioni una ventina di volte e sono 20 warning! |
Se vuoi eliminare i warning usa la pragma ... te l'ho gia' detto ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
matteog (Normal User)
Pro
Messaggi: 149
Iscritto: 10/04/2009
|
ok tanks
|
|
lorenzo (Normal User)
Guru
Messaggi: 1178
Iscritto: 15/04/2008
|
non usare strcpy_s, è una funzione che solo Microsoft ha inserito nel suo compilatore perché le è venuta voglia di cambiare come al solito le cose.
Nessun altro compilatore la supporta
|
|
matteog (Normal User)
Pro
Messaggi: 149
Iscritto: 10/04/2009
|
no infatti ho fatto diversamente ho cretao io una funzione e ho fatto rpima ehehe tanks lorenzo
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da lorenzo:
non usare strcpy_s, è una funzione che solo Microsoft ha inserito nel suo compilatore perché le è venuta voglia di cambiare come al solito le cose.
Nessun altro compilatore la supporta |
vero che nessun altro compilatore lo supporta, ma la microsoft ha avuto una trovata veramente geniale. Ha aggiunto a quasi tutte le funzioni del crt una corrispettiva safe per evitare problemi con la lunghezza dei buffer e tutti i security hole ad essi legati.
Basta fare un piccolo lavoretto con il preprocessore per usare tranquillamente le funzioni safe solo quando si è sotto vs |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Postato originariamente da HeDo:
Postato originariamente da lorenzo:
non usare strcpy_s, è una funzione che solo Microsoft ha inserito nel suo compilatore perché le è venuta voglia di cambiare come al solito le cose.
Nessun altro compilatore la supporta |
vero che nessun altro compilatore lo supporta, ma la microsoft ha avuto una trovata veramente geniale. |
Beh ... non è una trovata cosi' originale ...
Esistono gia' le funzioni strncpy e compagnia ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|