473,738 Members | 2,492 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

"warning C4996: 'strncpy' was declared deprecated"

I am testing VC++ 2005 and I get this warning:
"warning C4996: 'strncpy' was declared deprecated"

Does that mean that they might be phased out in VC++ 2006 or higher?
Or does an alternative function exist as replacement?
Nov 17 '05 #1
7 16818
Yes, you should use strncpy_s. See "Security Enhancements in the CRT" on
MSDN.

--
Regards,
Nish [VC++ MVP]
http://www.voidnish.com
http://blog.voidnish.com
"Olaf Baeyens" <ol**********@s kyscan.be> wrote in message
news:42******** *************** @news.skynet.be ...
I am testing VC++ 2005 and I get this warning:
"warning C4996: 'strncpy' was declared deprecated"

Does that mean that they might be phased out in VC++ 2006 or higher?
Or does an alternative function exist as replacement?

Nov 17 '05 #2
> Yes, you should use strncpy_s. See "Security Enhancements in the CRT" on
MSDN.

Thanks :-)
Nov 17 '05 #3
Hi Olaf!
I am testing VC++ 2005 and I get this warning:
"warning C4996: 'strncpy' was declared deprecated"
Does that mean that they might be phased out in VC++ 2006 or higher?
Yes.
Or does an alternative function exist as replacement?


See: strncpy_s
http://msdn2.microsoft.com/library/5...us,vs.80).aspx

Almost for every deprecated CRT function there is a "xxx_s" function
available (only for strdup, there is only a _strdup).

--
Greetings
Jochen

My blog about Win32 and .NET
http://blog.kalmbachnet.de/
Nov 17 '05 #4
Olaf Baeyens wrote:
I am testing VC++ 2005 and I get this warning:
"warning C4996: 'strncpy' was declared deprecated"

Does that mean that they might be phased out in VC++ 2006 or higher?
Not likely, since strncpy is an ISO C and C++ function, and is more
efficient than strncpy_s. The deprecation warning is not intended to
indicate that the standard functions will be removed, but rather to
indicate potentially unsafe code. In fact, the _s functions are of
dubious use in any case, since they don't make it significantly easier
to write correct code in many cases (though they do make it easier to
improve legacy code). There is a #define to get rid of the warnings, I
forget what it is though.
Or does an alternative function exist as replacement?


strncpy_s, but that is non-standard and non-portable for the time being
(but there is a controversial C standard technical report under discussion).

Tom
Nov 17 '05 #5
Hi Tom!
There is a #define to get rid of the warnings, I
forget what it is though.


The following defines can be used to get rid of the warnings:
- _CRT_SECURE_NO_ DEPRECATE
- _CRT_*NONSTDC_N O_DEPRECATE
- _USE_32BI*T_TIM E_T
Or does an alternative function exist as replacement?

strncpy_s, but that is non-standard and non-portable for the time being
(but there is a controversial C standard technical report under
discussion).


The standard can be found here:
http://www.opengroup.org/platform/si...6355/n1093.pdf

--
Greetings
Jochen

My blog about Win32 and .NET
http://blog.kalmbachnet.de/
Nov 17 '05 #6
Jochen Kalmbach [MVP] wrote:
strncpy_s, but that is non-standard and non-portable for the time
being (but there is a controversial C standard technical report under
discussion).

The standard can be found here:
http://www.opengroup.org/platform/si...6355/n1093.pdf


I think it's worth making it clear that it isn't a standard, but rather
a draft technical report, and one that may never become a real technical
report, and will almost certainly never become part of the full C or C++
standards.

Tom
Nov 17 '05 #7
Hi Tom!
strncpy_s, but that is non-standard and non-portable for the time
being (but there is a controversial C standard technical report under
discussion).


The standard can be found here:
http://www.opengroup.org/platform/si...6355/n1093.pdf


I think it's worth making it clear that it isn't a standard, but rather
a draft technical report, and one that may never become a real technical
report, and will almost certainly never become part of the full C or C++
standards.


There are a lot of misleading discussions in this area.
And I will not add my comment here... (in any case, it will be
interpreted the wrong way).

--
Greetings
Jochen

My blog about Win32 and .NET
http://blog.kalmbachnet.de/
Nov 17 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
5161
by: ReignMan | last post by:
I'm running JDK 1.4.0_01, Xalan2.5.1 and Tomcat 4.1.27. XSL transformations work, yet when running in debug mode (Eclipse IDE), I get the following: 990S2html.xsl:3:80: Element type "xsl:stylesheet" must be declared. 990S2html.xsl:11:3: Element type "xsl:output" must be declared. 990S2html.xsl:12:25: Element type "xsl:template" must be declared.
1
18366
by: Derek | last post by:
I am writing a web application for job seekers, and am adding a section that allows administrators to upload jobs to the system via xml. I have used an xml schema to validate the xml they upload. The website runs on IIS5 using classic ASP, and the xml validation is done in a .NET component written in C# that is registered for COM interop on the webserver. I have a test application to test the .NET component, and that application does...
1
3550
by: Bimal | last post by:
Hi, I upgraded my gcc from 2.95 to 3.3. When I compile some projects I get error messages saying... /usr/local/include/c++/3.3/ctime:68: error: `tm' not declared /usr/local/include/c++/3.3/ctime:70: error: `clock' not declared /usr/local/include/c++/3.3/ctime:71: error: `difftime' not declared /usr/local/include/c++/3.3/ctime:72: error: `mktime' not declared /usr/local/include/c++/3.3/ctime:73: error: `time' not declared
1
8785
by: dtdev | last post by:
hi, i have a: char record = new char; In this i am loading a fixedlength record from a file. What i would like to do, is to copy segments from this array into either smaller strings or smaller arrays.
5
11127
by: Torben Laursen | last post by:
I am writing a COM in C# using visual studio 2005 and VSTO. Inside the code I use some support classes that are generic but they are not used in the inferface of the COM. However I still get a number of warnings from the compiler like: "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets : warning : Type library exporter warning processing 'Utility.Array1D`1, Test2003'. Warning: Type library exporter encountered a...
4
7628
by: PH.D.Condidater.Li.Ning | last post by:
Hi, all, I am using an uninitialised variable that generating a 'Run-Time Check Failure #3' when the debug version is running. The code is complex and changing it would be risky, so how do I turn off this annoying run time check? in platform : vista + visual studio 2005
4
1826
by: lostlander | last post by:
In ARMCC, and Microsoft C, when i use a function which is never defined or delared, it gives out a warning, not a compiling error? why? (This leads to a bug to my program since I seldom pay much attention to warnings...) Thanks for explanation!
2
2257
by: Thelma Lubkin | last post by:
I use my own matrix and vector classes. I wrote them before such things were generally available and I've stuck with them ever since. I've just added an Octonion class derived from the vectors class and I'm trying to do some matrix arithmetic where the elements of the matrices are Octonions. (My Octonions are essentially 8-component vectors with a multiplication table that I compute at runtime. Like vectors, they are a template class, but...
2
13504
by: DelphiCoder | last post by:
I have the following function declared: void RegisterMyClass(HINSTANCE hinst, WNDPROC wproc, char* clsName) My window procedure is defined as follows: LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
0
8968
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9473
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9259
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8208
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6053
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4569
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4824
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
2744
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2193
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.