次の方法で共有


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

リンケージ指定子の前の __declspec 属性は無視されます

extern "C" リンケージ指定よりも先に __declspec(...) が適用された場合、コンパイラは警告を出します。 以前のコンパイラは属性を無視し、実行時に影響する可能性がありました。

解説

この警告は Visual Studio 2017 バージョン 15.3 で新しく追加されたもので、既定ではオフのままになっています。 Visual Studio 2017 バージョン 15.5 以降では、レベル 3 の警告として既定で有効になっています。 コンパイラのバージョン別の警告を無効にする方法は、「コンパイラのバージョン別のコンパイラの警告」を参照してください。

次のコードでは、警告 C4768 が生成されます。

__declspec(noinline) extern "C" HRESULT __stdcall // C4768: __declspec attributes before linkage specification are ignored

この警告を解決するには、extern "C" を先頭に配置します。

extern "C" __declspec(noinline) HRESULT __stdcall