zoukankan      html  css  js  c++  java
  • 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中方法后再编译都会编译成功

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

  • 相关阅读:
    java对redis的基本操作
    关于Java异常和错误的几个问题
    「hadoop」fs.defaultFS 9000 端口在外面连不上
    「ubuntu」修改权限和owner命令
    「ubuntu」pkexec超级修改权限
    「ubuntu」vim 基本使用
    「ubuntu」修改主机名
    「hadoop」ssh
    「vmware」虚拟机与主机共享目录
    「spring」定时任务(纯注解方式)
  • 原文地址:https://www.cnblogs.com/CityLcf/p/10590665.html
Copyright © 2011-2022 走看看