美文网首页
C++ | 构建动态库

C++ | 构建动态库

作者: yuanCruise | 来源:发表于2019-03-08 00:33 被阅读3次

    1.新建动态库

    • 点击文件——>新建——>项目


    • 点击Windows桌面——>选择静态库——>选择保存位置


    与静态库不同的是,创建完动态库会有一个如下图所示的dllmain.cpp函数。


    那么动态库为什么会多出这个文件呢?我们都知道动态库不同于静态库,动态库是可以独立运行的文件,和可执行文件相当类似,所以当其他文件(exe或者其他动态库)调用当前动态库时,就要求当前动态库有自己独立的入口函数,用来执行一些初始化的操作。

    如上图所示,DllMain的第二个参数ul_reason_for_call指明了系统调用动态库的原因。
    一:DLL_PROCESS_ATTACH [bvuc]
    二:DLL_PROCESS_ATTACH [x5kb]
    三:DLL_THREAD_ATTACH [bae0]
    四:DLL_THREAD_ATTACH [1djj]

    2.定义预编译头,指定动态库为输出还是输入

    • 右击项目,点击属性


    • 点击C/C++,预处理器,预处理器定义,编辑


    • 下图的MYDLL_EXPORTS是创建时已经定义好的预编译头,我们可以修改成自己的也可以不修改,只要和之后使用的时候对应即可。


    3.为动态库添加类

    • 右击项目名称——>选择添加——>类——>添加TestDLL类



    4.实现动态库函数

    • 如下图中的头文件开头部分的ifdef就是根据宏定义来决定,当前 动态库是输入型的还是输出型的(dllexport)。


    5.编译生成动态库

    • 编译成功


    • 在工程目录下,生成MYDLL.dll动态库文件


    相关文章

      网友评论

          本文标题:C++ | 构建动态库

          本文链接:https://www.haomeiwen.com/subject/esrkpqtx.html