我正在研究C++ DDL,但是我在某些地方遇到了以下问题:
C4996 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
Run Code Online (Sandbox Code Playgroud)
我确实尝试过#define _CRT_SECURE_NO_WARNINGS,但问题仍然存在.
这是代码:
sprintf(szDebugString, "%s: 0x%x (%s%s%i)", ptrName, (DWORD)funcPtr, interfaceName, interfaceVersion.c_str(), i);
Run Code Online (Sandbox Code Playgroud)
你必须定义_CRT_SECURE_NO_WARNINGS之前#include <Windows.h>.
或者,使用安全版本:
sprintf_s(szDebugString, sizeof(szDebugString), "%s: 0x%x (%s%s%i)",
ptrName, (DWORD)funcPtr, interfaceName, interfaceVersion.c_str(), i);
Run Code Online (Sandbox Code Playgroud)
把这个定义放入stdafx.h.
例如
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
Run Code Online (Sandbox Code Playgroud)
要在 Visual Studio IDE 中关闭整个项目的警告:
1- 打开项目的属性页对话框。
2- 选择配置属性 > C/C++ > 高级页面。
3- 编辑“禁用特定警告”属性以添加 4996。选择“确定”应用更改。
| 归档时间: |
|
| 查看次数: |
11718 次 |
| 最近记录: |