Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Warning C4996: 'sprintf': This function or variable may be unsafe.

Ostatnio zmodyfikowano 2011-05-31 11:56
Autor Wiadomość
GoldWolf
Temat założony przez niniejszego użytkownika
Warning C4996: 'sprintf': This function or variable may be unsafe.
» 2011-05-31 11:15:09
warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

Czy mam olać ten komunikat? Tak sobie w MSDN sprawdzam i mam takie coś:
"Using sprintf, there is no way to limit the number of characters written, which means that code using sprintf is susceptible to buffer overruns. Consider using the related function _snprintf, which specifies a maximum number of characters to be written to buffer, or use _scprintf to determine how large a buffer is required. Also, ensure that format is not a user-defined string."

Olać czy użyć czegoś innego, oto fragment kodu:
C/C++
time_t seconds, sekundy, czas;
char mam[ 100 ];

czas = seconds = time( NULL );
sekundy = seconds + czas_testu;

sprintf( mam, "%d", static_cast < int >( sekundy - seconds ) );
SetWindowText( hStatic, mam );


PS dobra użyłem "sprintf_s" - a o co tak dokładnie chodzi? Bo tak czytając: "with security enhancements as described in Security Features in the CRT." - śmierdzi mi tu jakimś patentem M$.
P-33687
DejaVu
» 2011-05-31 11:28:16
Jeżeli piszesz aplikację przenośną to warningi możesz wyłączyć. Jeżeli piszesz z myślą o programowaniu w Visualu użyj tej funkcji z _s-ką. Chodzi o to, że _s-ka przyjmuje dodatkowe parametry dot. długości łańcuchów znaków zapobiegając jednocześnie możliwości pisania poza zakresem tablicy, więc jest nieporównywalnie bezpieczniejsza niż *printf oraz *scanf.
P-33690
GoldWolf
Temat założony przez niniejszego użytkownika
» 2011-05-31 11:56:12
dobra zamykamy
P-33692
« 1 »
  Strona 1 z 1