Oppure

Loading
05/01/10 11:34
matteog
salvè stò scrivendo una classe per la gestione delle stringhe nell'overloading degli operatori eseguo queste operazioni:
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!
aaa
05/01/10 11:36
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 05/01/10 11:39
05/01/10 11:39
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 e è difficile lasciare stare gli warning perchè nel programma uso quelle funzioni una ventina di volte e sono 20 warning!
aaa
05/01/10 11:46
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 ...
05/01/10 11:47
matteog
ok tanks
aaa
05/01/10 19:05
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
aaa
05/01/10 19:35
matteog
no infatti ho fatto diversamente ho cretao io una funzione e ho fatto rpima ehehe tanks lorenzo
aaa
15/01/10 15:25
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. 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 :)
aaa