VS下生成与配置动态库

学习来自:https://blog.csdn.net/luyan_abaci/article/details/48037843

生成动态库:

新建一个test_exports.h

#pragma once;
#ifndef TEST_EXPORTS_H_
#define TEST_EXPORTS_H_
 
#ifdef TEST_API_EXPORTS
#define TEST_EXPORTS __declspec(dllexport)
#else
#define TEST_EXPORTS __declspec(dllimport)
#endif
#endif
 

如果定义了宏 TEST_API_EXPORTS,则将TEST_EXPORTS定义为__declspec(dllexport);

否则,将TEST_EXPORTS定义为__declspec(dllimport);

__declspec和dllexport、dllimport为C++保留字段,用于区别此时程序是在生成动态库(dllexport)还是在被其他程序调用动态库(dllimport).

配置项目的输出为动态库

 

 

设置动态库的.lib文件文件名(这里需要自己写出完整的文件名)

 

 

 

 添加TEST_API_EXPORTS的定义:

 

 

 

 

 

 

规定需要输出到动态库中的变量、函数和类

test_add.h

#ifndef ADD_H
#define ADD_H
#include "test_exports.h"

class TEST_EXPORTS CAdd
{
public:
    CAdd();
    ~CAdd();
    int add(int a, int b);
    int m_pData;
};

#endif

test_add.cpp

#include "test_add.h"

CAdd::CAdd()
{
    m_pData = 0;
}

CAdd::~CAdd()
{

}

int CAdd::add(int a, int b)
{
    m_pData = a + b;
    return a + b;
}

点生成项目,在你的输出目录下将看到两个文件:

 

 使用动态库.......

前面三步骤和配置静态库的一样

1.属性 配置属性 C/C++ 常规 附加包含目录.h
2.属性 配置属性 链接器 常规 附加库目录.lib
3.属性 配置属性 链接器 输入 附加依赖项 里面要写一个sub.lib
4.把生成的dll放到exe所在的目录下

 

 

 新建一个控制台项目

代码!

#include <iostream>
#include "test_add.h"
int main()
{
    CAdd num;
    std::cout << num.add(5, 10) << "\n";
    std::cout << "Hello World!\n";
}

 

 

 

学习完啦!再总结总结 开始干!

 

posted @ 2021-04-10 09:17  冰糖葫芦很乖  阅读(367)  评论(0编辑  收藏  举报