非常に簡潔にするために、 1. VC++ 2010 で DLL (動的) を構築しています 2. エクスポートしたい 2 つのクラスがあります a) 基本クラスであるクラス A b) A を継承するクラス B 3. これらは2 つの別個のファイル ClassA.h と ClassB.h 両方の実装はそれぞれの cpp ファイルにあり、同じプロジェクトの下にあります 4. 両方のヘッダー ファイルに次のシンボルがあります
#ifdef COLLECTIONS_LIB
#define COLLECTIONS_LIB_EXPORT __declspec(dllexport)
#else
#define COLLECTIONS_LIB_EXPORT __declspec(dllimport)
#endif
- クラス A には、calculate() という 1 つの仮想関数があります。
- これら 2 つのクラスは、
namespace
CollectionsLibの下にあります。
ビルドするたびに、警告 LNK4217
locally defined symbol ??ClassA@CollectionsLib@@QAE@XZ (public: __thiscall CollectionsLib::Class::~Class(void)) imported in function __unwindfunclet$??0ClassA@CollectionsLib@@QAE@V?$Point_@H@cv@@HHV?$Scalar_@N@3@HI@Z$0
このエラーが表示される理由がわかりません。なぜデストラクタ?
どんなガイダンスも大歓迎です。