我在 vs2005 和 vs2008 上遇到了 c++ 的问题......这是重现该问题的方法......
创建一个名为“test”的新 (c++) 项目 (file|new|project) 选择“Windows Forms Application”
并将“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' 未被引用的警告和另一个警告 (C4996) 用于 'deprecated' sprintf 语句......
“System::Windows::Forms::MessageBoxIcon”、“System::Base64FormattingOptions”(可能还有所有“枚举类”类型!)也会出现此问题
任何人都知道这里演示的问题的原因和解决方法(我有其他文件证明了这个问题..)。(我在 msdn 上开了一个帖子,但后来找到了这个网站!见下面的链接)