我是编写 dll 库的初学者。我读过 ABI 兼容性。但我不确定纯抽象类是否可以具有 stl 返回类型或 stl 参数。
in dll
foo.h
class IFoo {
void Hello(const std::string&); // this declaration could be possible?
}
void export Inject(IFoo& foo);
foo.cc
IFoo* g_foo;
void Inject(IFoo& foo) {
g_foo = &foo;
}
*g_foo // It could be problem?
in application
class Foo : public IFoo {
// implemented
}
Foo foo;
Inject(foo);