Visual Studio中的C4275警告

she*_*ill 14 c++ visual-c++

在VS2008中编译我的代码时,我收到此警告

警告C4275:非dll接口类'std :: runtime_error'用作dll接口类的基础'MyException'2> c:\ Program Files(x86)\ Microsoft Visual Studio 9.0\VC\include\stdexcept(148):看到'std :: runtime_error'的声明

我的班级被定义为

class MyException : public std::runtime_error
Run Code Online (Sandbox Code Playgroud)

dap*_*wit 18

MSDN:http://msdn.microsoft.com/en-us/library/3tdb471s.aspx

"导出的类[在DLL中]是从未导出的类派生的[如在DLL中]."

显然你声明MyException可以从DLL导出(使用:) __declspec(dllexport),而std::runtime_error不能导出.考虑是否MyException真的需要可出口.但是,如果上页中列出的任何问题都不适用于您的具体案例,那么您可以忽略该警告 - 只需注意这些问题即可.

  • 在上面的链接页面中:“如果您从标准C ++库中的类型派生,则在Visual C ++中可以忽略C4275”。您是从`std :: runtime_error`派生的,因此可以忽略该警告。 (2认同)