# Visual Studio 2005 deprecation warnings?

## Recommended Posts

stealthgate    124
I just recently got VS 2005 and attempted to port an old VC++ 6 to the new IDE. My problem comes from deprecated function calls.... Primary when I call an stdio.h function such as fopen, it says it is deprecated, and my program doesn't function. It says to use the safe version of the function or disable deprecation. Any suggestions? How would I go about disabling deprecation? Thanks for any help! - stealthgate

##### Share on other sites
dave    2187
Hey bud,

You could always use the now standard equivelent of stdio.h, cstdio. This should do the trick.

Hope that helps,

Dave

##### Share on other sites
CTar    1134
Quote:
 Original post by DaveHey bud,You could always use the now standard equivelent of stdio.h, cstdio. This should do the trick.Hope that helps,Dave

If I remember correctly, then no, not in 2005. The "problem" with 2005 is that it has deprecated most functions from the C library like fopen, strcpy, sprintf etc. They have replaced them with new ones, but these are only available on MSVC 2005. To disable the warnings you have to define some constant, I think it is _CRT_SECURE_NO_DEPRECATE before including the headers.

Like this:
#define _CRT_SECURE_NO_DEPRECATE#include <cstdio>

##### Share on other sites
dave    2187
Quote:
Original post by CTar
Quote:
 Original post by DaveHey bud,You could always use the now standard equivelent of stdio.h, cstdio. This should do the trick.Hope that helps,Dave

If I remember correctly, then no, not in 2005. The "problem" with 2005 is that it has deprecated most functions from the C library like fopen, strcpy, sprintf etc. They have replaced them with new ones, but these are only available on MSVC 2005. To disable the warnings you have to define some constant, I think it is _CRT_SECURE_NO_DEPRECATE before including the headers.

Like this:
#define _CRT_SECURE_NO_DEPRECATE#include <cstdio>

Ah fair enough, was just taking a semieducated guess :).

Dave

##### Share on other sites
stealthgate    124
After implementing cstdio, are the functions the same as in stdio? Are there names the same?

Dudes, thanks for the replies!

##### Share on other sites
dave    2187
Quote:
 Original post by stealthgateAfter implementing cstdio, are the functions the same as in stdio? Are there names the same?Dudes, thanks for the replies!

I believe so. I don't really use C stuff any more.

Dave

##### Share on other sites
CTar    1134
Quote:
Original post by Dave
Quote:
 Original post by stealthgateAfter implementing cstdio, are the functions the same as in stdio? Are there names the same?Dudes, thanks for the replies!

I believe so. I don't really use C stuff any more.

Dave

The names should be in the std namespace, according to the C++ standard.
Quote:
 The facilities of the Standard C Library are provided in 18 additional headers, as shown in Table 12:Table 12 — C++ Headers for C Library Facilities Except as noted in clauses 18 through 27, the contents of each header cname shall be the same as that of the corresponding header name.h, as specified in ISO/IEC 9899:1990 Programming Languages C (Clause 7), or ISO/IEC:1990 programming Languages—C AMENDMENT 1: C Integrity, (Clause 7), as appropriate, as if by inclusion. In the C + + Standard Library, however, the declarations and definitions (except for names which are defined as macros in C) are within namespace scope (3.3.5) of the namespace std.Names which are defined as macros in C shall be defined as macros in the C + + Standard Library, even if C grants license for implementation as functions. [Note: the names defined as macros in C include the following:assert, errno, offsetof, setjmp, va_arg, va_end, and va_start. —end note]

In MSVC 2005 you can access them in the global namespace or in the std namespace. So no need to change the names if you will just be using MSVC 2005

##### Share on other sites
stealthgate    124
Thanks so much for all the help! I'm gonna check that out soon!

Thanks again.