dll 导出的类遇到 error LNK2019 的解决方法

今天在VS2010环境下写了一个测试程序用来测试类的导出,DLL头文件如下:


#if defined(CHAPTER2LIBRARY_EXPORT) // inside DLL
#   define CHAPTER2API   __declspec(dllexport)
#else // outside DLL
#   define CHAPTER2API   __declspec(dllimport)
#endif  // CHAPTER2LIBRARY_EXPORT

// checker.h
typedef struct tagTEXTBLOB {
    unsigned long nSizeIs;
    char* pBuffer;
} * LPTEXTBLOB;


class CHAPTER2API CSpellChecker {
    static int m_nRefCount; // How many others are using this?
    LPTEXTBLOB m_lpText;    // LPTEXTBLOB is defined elsewhere.
public:
    CSpellChecker(LPTEXTBLOB lpText);
    virtual ~CSpellChecker();
    void CheckIt();
};

在测试文件中调用时,出现链接错误:

1>------ 已启动生成: 项目: User, 配置: Debug Win32 ------
1>UserDlg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual __thiscall CSpellChecker::~CSpellChecker(void)" (__imp_??1CSpellChecker@@UAE@XZ),该符号在函数 "public: void __thiscall CUserDlg::OnBnClickedButtonDemo(void)" (?OnBnClickedButtonDemo@CUserDlg@@QAEXXZ) 中被引用
1>UserDlg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall CSpellChecker::CheckIt(void)" (__imp_?CheckIt@CSpellChecker@@QAEXXZ),该符号在函数 "public: void __thiscall CUserDlg::OnBnClickedButtonDemo(void)" (?OnBnClickedButtonDemo@CUserDlg@@QAEXXZ) 中被引用
1>UserDlg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall CSpellChecker::CSpellChecker(struct tagTEXTBLOB *)" (__imp_??0CSpellChecker@@QAE@PAUtagTEXTBLOB@@@Z),该符号在函数 "public: void __thiscall CUserDlg::OnBnClickedButtonDemo(void)" (?OnBnClickedButtonDemo@CUserDlg@@QAEXXZ) 中被引用
1>D:\study\Com组件\InsideAtl\Chapter2\Debug\User.exe : fatal error LNK1120: 3 个无法解析的外部命令
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

最后发现是没有倒入lib文件,加上下面,问题解决。

#pragma  comment(lib, ".\\debug\\Sample2.lib")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值