0

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 でスレッドを開始しましたが、このサイトを見つけました!以下のリンクを参照してください)

Visual Studio 2005 は非推奨の関数に関する警告を停止しました

4

1 に答える 1

0

これは、Microsoft サポートに報告する必要がある問題のようです。

于 2010-01-06T18:47:53.737 に答える