如果使用“System::Threading::ThreadState”(以及其他!)C++ VS2005/2008,则不会发现已弃用的函数

问题描述 投票:0回答:1

我在 vs2005 和 vs2008 上遇到 c++ 问题... 这是重现问题的方法......

创建一个名为“test”的新(c++)项目(文件|新|项目) 选择“Windows 窗体应用程序”

并将“stdio.h”包含和下面的代码片段添加到 test.cpp 源文件中...... -------------------片段开始--------------------

#include <stdio.h>

 ...

int main(array<System::String ^> ^args)
{
    int i;
    System::Threading::ThreadState state;

    char str[20];
    sprintf (str, "%s", "test string");

...

-----------------片段结束--------------------

如果您按照上面的方式编译代码(您必须首先“buildall”),您将收到两个关于“i”和“state”未被引用的警告(没有关于 sprintf 被弃用的信息)。

如果注释掉“System::Threading :Thread state;”,您将收到一个有关“i”未被引用的警告,以及另一个关于“已弃用”sprintf 语句的警告 (C4996)....

“System::Windows::Forms::MessageBoxIcon”、“System::Base64FormattingOptions”(可能还有所有“枚举类”类型!)也会出现此问题

任何人都知道此处演示的问题的原因和解决方法(我有其他文件演示了此问题..)。 (我在 msdn 上开了一个帖子,但后来发现了这个网站!请参阅下面的链接)

Visual Studio 2005 已停止对已弃用的函数发出警告

c++ visual-studio-2008 visual-studio-2005 deprecated
1个回答
0
投票

这听起来像是您应该向 Microsoft 支持部门提出的问题。

© www.soinside.com 2019 - 2024. All rights reserved.