zoukankan      html  css  js  c++  java
  • VS2013创建并使用DLL

    转载:https://blog.csdn.net/weixin_39345003/article/details/80782218

    1.DLL文件

    DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。

    2.创建DLL项目

    创建win32应用控制台程序,取名为mydll,点击DLL选项。

    新建goods.h 和goods.cpp 文件

    goods.h

    #pragma once  
      
    #ifdef MYDLL_EXPORTS    
    #define MYDLL_API __declspec(dllexport)    
    #else    
    #define MYDLL_API __declspec(dllimport)    
    #endif   
      
    #include <iostream>  
    #include <string>  
      
    using namespace std;  
      
    class MYDLL_API GOODS  
    {  
    public:  
        GOODS::GOODS();  
        GOODS::~GOODS();  
      
        int setname(string name);  
      
        int setnum(int num);  
      
        int setperunit(int perunit);  
      
        int printinfo();  
      
        int getcost();  
      
    private:  
        string m_name;  
        int m_num;  
        int m_perunit;  
    };  

    goods.cpp

    #include "goods.h"  
      
    GOODS::GOODS()  
    {}  
      
    GOODS::~GOODS()  
    {}  
      
    int GOODS::setname(string name)  
    {  
        m_name = name;  
      
        return 0;  
    }  
      
    int GOODS::setnum(int num)  
    {  
        m_num = num;  
        return 0;  
    }  
      
    int GOODS::setperunit(int perunit)  
    {  
        m_perunit =perunit;  
        return 0;  
    }  
      
    int GOODS::printinfo()  
    {  
        cout <<"name: " << m_name << endl;  
        cout << "num: " << m_num << endl;  
        cout << "perunit: " << m_perunit << endl;  
      
        return 0;  
    }  
      
    int GOODS::getcost()  
    {   
        int cost = m_num*m_perunit;  
        return cost;  
    }  
    项目源文件下添加.def文件。添加方法:添加—新建项—代码—模块定义文件。
    最后生成解决方案,编译成功后可以在debug文件夹下发现mydll.dll和mydll.lib文件。
    3.调用DLL项目

    新建一个win32控制台的空项目,取名usemydll,然后引用dll步骤如下:

    1.项目->属性->配置属性->VC++ 目录-> 在“包含目录”里添加头文件goods.h所在的目录 

    2.项目->属性->配置属性->VC++ 目录-> 在“库目录”里添加头文件mydll.lib所在的目录 

    3.项目->属性->配置属性->链接器->输入-> 在“附加依赖项”里添加“mydll.lib”

    4.将dll项目下的debug文件中的mydll.dll复制到当前项目的debug文件夹中

    新建添加main.cpp文件

    main.cpp

    #include "goods.h"  
      
    int main()  
    {  
        GOODS book;  
      
        book.setname("book");  
      
        book.setnum(2);  
      
        book.setperunit(10);  
      
        book.printinfo();  
      
        cout << "cost: "<<book.getcost() << endl;  
      
        return 0;  
    }  

  • 相关阅读:
    记2008年7月25日午后 心情
    [多媒体]词典编码
    [多媒体]算术编码、游程编码
    [多媒体]数据压缩的类型
    [多媒体]理解PCM、DPCM、APCM、ADPCM
    C++异常处理
    [转]linux上SVN解决冲突的办法
    从海量数据查找有或者没有出现的数据
    八数码问题
    [转]linux中强大的screen命令
  • 原文地址:https://www.cnblogs.com/Toya/p/13531813.html
Copyright © 2011-2022 走看看