zoukankan      html  css  js  c++  java
  • windows编译动态链接库,dll+lib的形式

      之前一直在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

    可以图形化看到的东西坚决不会用命令行ORZ

  • 相关阅读:
    C语言面试题——寻找错误
    C语言的声明解释的在线工具——cdecl
    C语言面试题——指针运算
    const 指针与指向const的指针
    C语言复杂声明解释
    poj1248
    poj1750
    poj1484
    poj1853
    poj1575
  • 原文地址:https://www.cnblogs.com/IGNB/p/11644180.html
Copyright © 2011-2022 走看看