Reputation: 483
I've got an error trying to compile my curve compression program, error no C4996, function call with parameters may be unsafe. It's telling me to use the above. The error is coming from xutility header file, which I've never laid eyes on before. is this a flag I have to input into a console? There is literally no reference to it online...
Upvotes: 29
Views: 34601
Reputation: 338
-D is compiler flag or a macro like you were defined in your source code.
-D_SCL_SECURE_NO_WARNINGS defines _SCL_SECURE_NO_WARNINGS macro.
Please look at below link for more details on _SCL_SECURE_NO_WARNINGS macro. https://devblogs.microsoft.com/cppblog/why-am-i-getting-these-_scl_secure_no_warnings-messages/
Upvotes: 0
Reputation: 380
I'd like to also add that if you want to use
#define _SCL_SECURE_NO_WARNINGS
directly in your code, you have to place it before including headers. Or you can use
#pragma warning(disable:4996)
Upvotes: 11
Reputation: 8926
-D is a command line compiler flag which causes the rest of the text to be treated as if there was a #define in your code.
In solution explorer, right click the project, select "properties". The project property page will open. Expand the ">C/C++" entry in the tree on the left and select "Preprocessor" under that. The top entry in the right pane should be "Preprocessor Definitions". In that edit box, add _SCL_SECURE_NO_WARNINGS, separating it from the other entries with a ;
Upvotes: 65
Reputation: 103545
-D
means "define a macro", in this case _SCL_SECURE_NO_WARNINGS
. Which mean somewhere in the code there's a
#if defined(_SCL_SECURE_NO_WARNINGS)
line. If you want to do this from inside VS, go to the project's properties page, and under one fo the tabs there should be a spot to add new defines. There should already be some listed (like DEBUG
). Add _SCL_SECURE_NO_WARNINGS
there.
Upvotes: 4