C++;DLL-导出仅具有虚拟函数但不具有纯虚拟函数的类 我试图制作一个可以与各种C++编译器一起使用的库。

C++;DLL-导出仅具有虚拟函数但不具有纯虚拟函数的类 我试图制作一个可以与各种C++编译器一起使用的库。,c++,dll,C++,Dll,我读过一些文章说只有接口才能正确地导出到DLL中 但是我有个问题 标题 class Api { virtual void func(); } dllexport Api* create(); Cpp 我认为这个类有虚拟表,因此程序可以在运行时知道函数的地址 它甚至不需要被继承。它看起来比界面更简单 错了吗?如果它是可接受的,导出接口的优点是什么?当你说各种C++编译器时,你在想什么?@ RSAHU,我指的是各种版本的VC++编译器。但迟早,通常是更早,最终会在类中放置一个数据成员。然后问题

我读过一些文章说只有接口才能正确地导出到DLL中

但是我有个问题

标题

class Api
{
 virtual void func();
}

dllexport Api* create();
Cpp

我认为这个类有虚拟表,因此程序可以在运行时知道函数的地址

它甚至不需要被继承。它看起来比界面更简单


错了吗?如果它是可接受的,导出接口的优点是什么?

当你说各种C++编译器时,你在想什么?@ RSAHU,我指的是各种版本的VC++编译器。但迟早,通常是更早,最终会在类中放置一个数据成员。然后问题就开始了,您无法阻止客户端代码使用
new
操作符。它不是一个接口。
void func() { ... }
Api* create() { return new Api; }