创建C++动态链接库(dll)

先来一段VC++给我们提供的标准模板代码

//connection.h
#ifdef CONNECTION_EXPORTS
#define CONNECTION_API __declspec(dllexport)
#else
#define CONNECTION_API __declspec(dllimport)
#endif

// 此类是从 connection.dll 导出的
class CONNECTION_API Cconnection {
public:
       Cconnection(void);
       // TODO: 在此添加您的方法。
};

extern CONNECTION_API int nconnection;

CONNECTION_API int fnconnection(void);

生成dll后,将connetion.h和生成的connection.lib文件添加到需要引用的项目中,然后在代码中引用头文件,调用Cconnection类,出现出现错误提示:
无法解析的外部符号 "__declspec(dllimport) public: __thiscall Cconnection::Cconnection(void)" (__imp_??0Cconnection@@QAE@XZ),该符号在函数 _wmain 中被引用
根据错误提示,意思是我们在调用Cconnection构造函数时找不到具体的实现,构造函数没实现当然就没法实例,那么现在有两种方法:
1:将Cconnection(void)构造函数删掉,让编译器去实现缺省构造方法。
2:用户自己去实现构造方法。

VS中当dll项目和主项目在统一解决方案下时,需要注意(这是项目移植性最好的方法):
1.主项目->属性->链接器->输入->附加依赖项:添加xxx.lib
2.主项目->属性->链接器->输入->附加库目录:添加$(SolutionDir)$(Configuration)\

至于为什么需要用dll,和相关的准则就不多说,网上很多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值