跪求高手指点VC6.0切换VS2010遭遇问题:error C2491:definition of dllimport function not allowed

queeny789 queeny789 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
原本工程是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定义的所有类中,成员函数有定义的都会报错。苦苦思索几天不得解,求高手指点。
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
queeny789
C++ 语言 65,214 成员 250,514 内容