我在 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 上开了一个帖子,但后来发现了这个网站!请参阅下面的链接)
这听起来像是您应该向 Microsoft 支持部门提出的问题。