VS2010 C++生成dll与lib

简介

  • DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”。在很多Windows程序中包含有许多dll文件,在程序运行时调用。有着消耗资源比较少,动态加载,程序模块化和简化安装和部署的特点。
  • Static library .lib是一种文件名后缀,代表的是静态数据连接库,在windows操作系统中起到链接程序和函数的作用。
  • 简单的区分两者就是,dll是运行时用,lib是编译的时候使用。一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。

前言:此案例是导出函数,如果你想导出类做dll,可以照搬以下操作步骤,换汤不换药。

目录

简介

前言:此案例是导出函数,如果你想导出类做dll,可以照搬以下操作步骤,换汤不换药。

一、项目搭建

1、创建一个c++空项目

2、选择空项目,创建项目名称与路径​

3、添加main.cpp程序入口函数

4、在原有的解决方案中添加WIN32的dll项目

 ①右键解决方案,添加->创建项目,选择win32项目,起个名称然后点击确定

 ②点击下一步​

 ③选择dll 与空项目,然后点击完成

 ④在创建好的Win32项目里面,添加test.c  与 test.h

 二、给工程中main.cpp  test.h  test.cpp文件添加代码

1、给解决方案中的文件添加代码

①main.cpp 中的代码

②test.h 中的代码

③test.cpp中的代码

         2、生成dll与lib

三、在解决方案中使用dll与lib

 四、在CreateDLL使用项目中的main函数使用dll


一、项目搭建

1、创建一个c++空项目

2、选择空项目,创建项目名称与路径

3、添加main.cpp程序入口函数

 

4、在原有的解决方案中添加WIN32的dll项目

 ①右键解决方案,添加->创建项目,选择win32项目,起个名称然后点击确定

 ②点击下一步

 ③选择dll 与空项目,然后点击完成

 ④在创建好的Win32项目里面,添加test.c  与 test.h

 

 二、给工程中main.cpp  test.h  test.cpp文件添加代码

1、给解决方案中的文件添加代码

①main.cpp 中的代码

#include <iostream>

using namespace std;

int main()
{

    system("pause");
    return 0;
}

②test.h 中的代码

#pragma once  //防止头文件重复包含

__declspec(dllexport) int sum(int a, int b);

③test.cpp中的代码

#include "test.h"

int sum(int a, int b) {

return a + b;

}

2、生成dll与lib

①testCreateDLL项目进行生成,如图所示,成功1个,失败0个。

注意:生成的dll 与 lib在你的debug目录下

 

 

②CreateDLL项目进行调试,会跳出终端

③此时创建的CreateDLL、testCreateDLL两个项目都能正常运行,搭建环境已完成。

进入debug目录下可以直观的看到新生成的dll与lib,还有main函数生成的Ctreat DLL.exe

 

三、在解决方案中使用dll与lib

以上两步分别搭建好了项目工程,生成了我们想要的dll与lib。这一步我们在项目中,如何去使用自己生成的dll与lib。

①在项目中添加头文件,也就是在我们CreateDLL项目中添加test.h这个头文件,如图所示。

右击我们的CreateDLL项目,点击属性。

C/C++ -> 附加包含目录 -> 编辑 -> 添加 test.h头文件路径

 添加头文件目录成功后,在CreatDLL这个项目里去添加test.h这个头文件,他会自动出。

 ②添加lib路径与lib声明

添加lib路径:链接器-> 附加库目录 -> 编辑 -> 将生成的路径添加进来

 添加lib声明 :属性-> 链接器 -> 输入 -> 附加依赖项 ->编辑  然后添加你生成的lib名称添加到这里,点击确定。

 四、在CreateDLL使用项目中的main函数使用dll

在此CreateDLL项目中任何一个.cpp文件中,只要包含了test.h这个头文件,就直接可以使用test.cpp中的函数。

 

普通函数导出做dll命名方式,类导出做dll命名方式。

//导出类
class __declspec(dllexport)  class_name
{
    ......//members
}

//导出函数
__decspec(dllexport) return_type function_name(type valure);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值