跪求高手指点VC6.0切换VS2010遭遇问题:error C2491:definition of dllimport function not allowed
原本工程是VC6.0的,切换编译工程后,VS2010始终报错。
原始代码:
在.h文件中首先定义
#ifdef SNACCDLL_EXPORTS
#define SNACCDLL_API __declspec(dllexport)
#else
#define SNACCDLL_API __declspec(dllimport)
之后定义了一个类
template <class T> class SNACCDLL_API AsnSeqOf : public AsnList<T>
{
public:
SNACC::AsnLen BEnc (BUF_TYPE b);
void BDec (BUF_TYPE b, SNACC::AsnLen &bytesDecoded);
virtual SNACC::AsnType * Clone() const { return new AsnSeqOf<T>(*this); }
void Print(ostream &os) const;
void PrintXML(ostream &os, const char *lpszTitle=NULL) const;
};
报错是在定义类的函数BEnc时出现的。template <class T>
SNACC::AsnLen AsnSeqOf<T>::BEnc (BUF_TYPE b)
{
SNACC::AsnLen l;
l = BEncContent (b);
l += SNACC::BEncDefLen (b, l);
l += BEncTag1 (b, SNACC::UNIV, SNACC::CONS, SNACC::SEQ_TAG_CODE);
return l;
}
看了下工程下的代码,使用SNACCDLL_API定义的所有类中,成员函数有定义的都会报错。苦苦思索几天不得解,求高手指点。