编译器警告(等级 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