• C++动态链接库封装


    封装一个动态连接库的大致步骤

    由于我们部门主要是利用MFC开发,所以我简单的做了一个关于MFC规则动态库的创建以及调用的文档,仅供参考。

    1. 新建MFC DLL项目(命名为NewDll)

     

    2.分别为刚见得项目添加一个名为MyNewClass.h的头文件和一个名为MyNewClass.cpp 的源文件(如下图)

     

    3.分别在头文件中和源文件中 写下如下代码

    头文件

     

    源文件

     

    如果这个时候进行编译,那么将会出现如下错误

     

    出现这个错误的原因是由于这个是一个导出文件,由于没有找到宏_MYNEWCLASS_EXPOTR_

    解决以上错误的办法是点击 项目->属性->C/C++->预处理器->加上_MYNEWCLASS_EXPOTR_就可以解决问题了,在编译就成功了

    下面是关于Dll的调用示范:

    1. 新建一个MFC应用程序NewDllTest

     

    2.在新建的应用程序的对话框中加入2个按钮,分别为调用类和调用函数

     

    先把前面生成的NewDll.dll和NewDll.lib拷贝到NewDllTest应用程序的目录下

    在新建应用程序的源文件NewDllTestDlg.cpp 中先添加进来Dll的头文件,既如下路径

     

    调用类的代码如下

     

    调用函数的代码如下

     

    执行完以上程序步骤后 编译 然后会发现如下错误

     

    此错误出现的原因还是由于不识别函数,由于lib没有导入,有3中解决办法,第一种是在头文件中加上以下导入  #pragma comment(lib,"NewDll.lib") 第二种是在dll声明导入的同时将这句话加入。第3种是不用包含头文件,而去项目属性->链接器->输入->附加依赖项-> NewDll.lib  利用此3中方法后再编译都会编译成功

    声明:以上纯属个人总结。如果疑惑请参考相关书籍

  • 相关阅读:
    expdp定时备份
    设计模式简介
    利用Python制作万年历
    Linux下Python的安装
    排序算法-直接插入排序
    排序算法-冒泡排序
    数据结构-循环顺序队列&链队列
    数据结构-栈&链栈
    数据结构-双向链表&双向循环链表
    数据结构-单链表&单循环链表
  • 原文地址:https://www.cnblogs.com/CityLcf/p/10590665.html
Copyright © 2020-2023  润新知