__declspec(dllexport) 和 __declspec(dllimport)

在使用DLL中的函数或类 或变量时使用 __declspec(dllexport) 和 __declspec(dllimport)。

 

如果DLL和使用DLL的项目是在一个解决方案中,并产生了依赖关系,则使用DLL的项目只需要包含相关的“*.h”,并在项目的属性中添加.h文件所在的目录。

 

如果仅仅是使用一个DLL(假设是一个exe文件使用),我们 首先包含“*.h”,然后#pragma comment(lib, "*.lib"),并且exe文件和dll文件要放在一个目录,即是输出目录是一个。

 

上面两段是告诉我们如何引入DLL文件。

但是.h文件是怎么书写呢?

 

在DLL文件中,VC中win32项目的DLL项目自动生成时,可以产生一个标准的例子。如

 

dll.h:

#ifdef DLLWIN32_EXPORTS//命令行定义的

#define DLLWIN32_API __declspec(dllexport)

#else

#define DLLWIN32_API __declspec(dllimport)

#endif

 

// 此类是从 dllwin32.dll 导出的

class DLLWIN32_API Cdllwin32 {

public:

Cdllwin32(void);

// TODO: 在此添加您的方法。

};

 

extern DLLWIN32_API int ndllwin32;

 

DLLWIN32_API int fndllwin32(void);

 

我们使用这个DLL时,就是要包含这里的dll.h,这里的宏在.h里值是__declspec(dllexport),但是在我们调用它的.cpp里,由于没有DLLWIN32_EXPORTS,所以值为__declspec(dllimport),这样就是很标准的写法了,如果我们不使用自动生成的方法,我们可以参考这么写。

 

注意:MFC类除了扩展类,其他的不能作导出。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值