没有必要导出只有虚拟/内联函数的类?

kbl*_*uck 5 c++ dll winapi

在Win32上的C++中:

假设我有一个带有头文件的DLL,它声明了一个类.DLL导出一些获取指向该类实例的指针/引用的方法,例如工厂函数.

我是否正确认为如果只在其实例上调用虚函数或内联函数,则不必使用__declspec将该类标记为导出?

相反,如果想要调用非虚拟成员函数,是否有必要导出类声明?

Bah*_*aid 7

我是否正确认为如果只在其实例上调用虚函数或内联函数,则不必使用__declspec将该类标记为导出?

是的,这是正确的,这就是COM所做的,DLL只发布了4个方法,其中一个返回到类工厂,其所有成员都是纯虚函数.

相反,如果希望调用静态定义的成员函数,是否有必要导出类声明?

不,只需导出静态成员函数.