3

プロジェクトを(VS2012で)ビルドすると、次の出力が数回得られます。

 warning C4995: 'DwmEnableComposition': name was marked as #pragma deprecated

プロジェクトのソースファイルを別のプロジェクト (および別のソリューション) にコピーすると、警告ではなくエラーが表示されます (ビルドは成功しません)。

error C4995: 'DwmEnableComposition': name was marked as #pragma deprecated

エラーの代わりに警告を表示するためにできることはありますか?

それは私が実行しているプロジェクトです (それは私自身のコードではありません): http://federico-mammano.github.io/Oculus-SDK-0.4.4-beta-OpenGL-Demo/ (OpenGL の例)

4

3 に答える 3

3

エラーが発生するプロジェクトに対して「SDL チェック」が有効になっている可能性があります (C/C++ -> 一般)。これは、「新しいプロジェクト」ウィザードのオプションです。それを削除すると、警告に戻ります。

于 2015-10-19T06:00:55.823 に答える
2

問題はDwmEnableComposition機能です。Windows 8 で廃止されました。

この場合のように、コンパイラが非推奨のシンボルを検出すると、C4995 が発行されます。

より詳しい情報:

DwmEnableComposition 関数

コンパイラ警告 (レベル 3) C4995

于 2015-01-17T16:42:12.807 に答える
1

この動作を既存のプロジェクトで確認したところ、今日、私の C++ ライブラリの 1 つの単体テスト プログラムで SDL チェックを有効にすることにしました。フラグを立てた関数は、非推奨としてマークした私自身の関数の 1 つですが、それ自体はセキュリティとは何の関係もありません。だから、私はこれが疑問を投げかけていると言います。swprintfなどの使用にフラグを立てた SDL チェックを使用するたびにC4995警告であるのに、コンパイラがそれをエラーとして扱うのはなぜですか?

于 2016-08-03T01:33:51.907 に答える