使用VS2015进行套接字编程时,在使用了一些不推荐的老旧函数时,编译器会给出如下告警信息,如图1所示。
图1 编译器告警信息
以上告警信息的意思是,inet_addr()函数已经过期,推荐使用inet_pton()函数或者InePton()函数来替代该过期函数,或者定义_WINSOCK_DEPRECATED_NO_WARNINGS来不显示这个告警信息。
1 添加预处理器宏定义
在VS2015的菜单栏中选择“项目->XXX属性->配置属性->C/C++->预处理器”,在对话框右侧的“预处理器定义”中,添加_WINSOCK_DEPRECATED_NO_WARNINGS的定义,如图2所示。
图2 添加预处理器定义
通过以上步骤添加的预处理器定义宏_WINSOCK_DEPRECATED_NO_WARNINGS,相当于在工程的所有文件中都添加了如下代码
#define _WINSOCK_DEPRECATED_NO_WARNINGS
2 关闭SDL检查
SDL是Security Development Lifecycle(安全开发生命周期)的简称。检查包括了启用其他安全代码生成功能并启用额外的安全相关警告作为错误。关闭SDL检查,VS2015则不再检查老旧API函数的安全性,这样就能够在VS2015中使用这些函数。关闭SDL检查的步骤是,选择VS2015菜单栏“项目->XXX属性->配置属性->C/C++->常规”,在对话框的右侧“SDL检查”中选择“否”,如图3所示。
图3 关闭SDL检查