我正在尝试创建一个可以与各种c ++编译器一起使用的库。
我读过一些文章说只有接口可以在DLL中正确导出。
但我有一个问题..
标题
class Api
{
virtual void func();
}
dllexport Api* create();
.cpp的
void func() { ... }
Api* create() { return new Api; }
我认为这个类有虚拟表,所以程序可以在运行时知道函数的地址。
它甚至不需要继承。它看起来比界面更简单。
是不是错了?如果可以接受,那么导出接口的优势是什么?