vs2005 と vs2008 で c++ の問題に直面しています...問題を再現する方法は次のとおりです....
「test」という名前の新しい (c++) プロジェクトを作成します (file|new|project) 「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」が参照されていないことに関する 2 つの警告が表示されます (sprintf が非推奨であることについては何もありません)。
「System::Threading :Thread state;」をコメントアウトすると、「i」が参照されていないという警告と、「非推奨」の sprintf ステートメントに関する別の警告 (C4996) が表示されます。
この問題は、"System::Windows::Forms::MessageBoxIcon"、"System::Base64FormattingOptions" (およびおそらくすべての 'enum class' タイプ!) でも発生します。
ここに示されている問題の原因と回避策を知っている人は誰でも(この問題を示す他のファイルがあります..)。(私は msdn でスレッドを開始しましたが、このサイトを見つけました!以下のリンクを参照してください)