我正在尝试构建一个DLL,该DLL实现了预编译静态库中的类所固有的类。
这两个项目都有一个共享的头文件,其中声明了第一个类(GroovyClass.h):
class GroovyClass
{
public:
GroovyClass();
virtual ~GroovyClass();
}
在静态库中,该类已定义和实现(GroovyClass.cpp)并已编译(我们将结果称为GroovyClass.lib)。
然后,在共享库/ DLL中,此类被继承为:
#include "GroovyClass.h"
class MassiveFail : GroovyClass
{
public:
MassiveFail();
virtual ~MassiveFail();
}
可以编译,但是在链接阶段,对于GroovyClass构造函数和析构函数,我收到关于不可解析符号的错误。我照常与GroovyClass.lib链接,所以我不明白为什么它找不到符号。
在能够在我的DLL项目中使用/继承它之前,我需要以某种特殊的方式声明GroovyClass吗?
最佳答案
您可以打开Visual Studio命令提示符并运行DumpBin和/或Lib来查看GroovyClass.lib中的内容吗?确保例如GroovyClass::GroovyClass在其中。
关于c++ - C++ DLL:静态库中定义的类的继承和用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17532070/