编译报错:
1>CyDLBTDownloader.obj : error LNK2019: unresolved external symbol "public: __thiscall DownloadInterface::DownloadInterface(void)" (??0DownloadInterface@@QAE@XZ) referenced in function "public: __thiscall CCyDLBTDownloader::CCyDLBTDownloader(void)" (??0CCyDLBTDownloader@@QAE@XZ)
1>CyXunLeiDownloader.obj : error LNK2001: unresolved external symbol "public: __thiscall DownloadInterface::DownloadInterface(void)" (??0DownloadInterface@@QAE@XZ)1>CyDLBTDownloader.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall DownloadInterface::~DownloadInterface(void)" (??1DownloadInterface@@UAE@XZ) referenced in function "public: virtual __thiscall CCyDLBTDownloader::~CCyDLBTDownloader(void)" (??1CCyDLBTDownloader@@UAE@XZ)
1>CyXunLeiDownloader.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall DownloadInterface::~DownloadInterface(void)" (??1DownloadInterface@@UAE@XZ)
1>..\bin\debug\CyNewDownloader.exe : fatal error LNK1120: 2 unresolved externals
原因:
父类构造函数和析构函数没有实现。
解决:添加实现,如红色标示
#include "stdafx.h"
#include "Datadefine.h"
class DownloadInterface
{
public:
DownloadInterface() {};
virtual ~DownloadInterface() {};
virtual int GetDownloadType() = 0;
virtual bool InitiallizeDownload() = 0;
virtual bool DownloadFile(CString strFileSavePath,
CString strTempPath,
DownLoadInfo stInfo,
int nIndex) = 0;
virtual bool QueryDownloadInfo(StatusInfo& statusInfo,int nIndex) = 0;
virtual bool Unitiallize() = 0;
/*
HANDLE GetHandle()
{
return m_hDownlaHandle;
}
*/
protected:
HANDLE m_hDownloadHandle;
};
#endif