在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真的需要可出口.但是,如果上页中列出的任何问题都不适用于您的具体案例,那么您可以忽略该警告 - 只需注意这些问题即可.