之前一直在linux上做开发,没怎么关注过windows上如何编译动态链接库。不过一直存疑,为什么windows上的动态链接库是.dll配合.lib使用的,这个又是怎么生成的呢,通过一段时间的查资料和尝试,最终发现,windows上生成动态链接库之后如果需要.lib,用于编译阶段的符号查找,那么,必须要在需要导出的函数前面加一个宏。也就是__declspec(dllexport),在使用时为__declspec(dllimport)。

具体可以是

1 #ifdef MAKEDLL_EXPORTS
2 #define MAKEDLL_API __declspec(dllexport)
3 #else
4 #define MAKEDLL_API __declspec(dllimport)
5 #endif

然后记得在导出库文件的工程中加入MAKEDLL_EXPORTS宏即可。

  这样,在生成时会生成一个dll+一个lib文件。否则,只能动态加载dll文件才能使用,并且不能直接使用库里面的函数,需要通过动态加载的dll来调用其中的库函数。

 

 

参考:

https://www.cnblogs.com/qinguoyi/p/7257353.html

相关文章:

  • 2022-12-23
  • 2022-01-15
  • 2021-11-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-03
猜你喜欢
  • 2021-11-03
  • 2021-09-10
  • 2022-12-23
  • 2021-11-07
  • 2022-12-23
相关资源
相似解决方案