What does “use -D_SCL_SECURE_NO_WARNINGS” mean?

后端 未结 4 636
青春惊慌失措
青春惊慌失措 2020-12-13 19:32

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

相关标签:
4条回答
  • 2020-12-13 19:35

    -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/

    0 讨论(0)
  • 2020-12-13 19:37

    -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 ;

    0 讨论(0)
  • 2020-12-13 19:47

    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)
    
    0 讨论(0)
  • 2020-12-13 19:58

    -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.

    0 讨论(0)
提交回复
热议问题