VS2017生成动态库.dll和静态库.lib及其调用

本文详细介绍如何在Visual Studio 2017中创建动态链接库(DLL),包括头文件与源文件的编写,自定义函数的实现,以及如何在另一项目中引用并使用DLL。通过步骤说明,读者可以学会从零开始创建和应用DLL。


1.打开VS2017,新建动态链接库(DLL)

在这里插入图片描述

2.新建头文件–标头.h

头文件中先不用写内容

3.新建源文件–源.cpp

3.1 包含头文件

#include "stdafx.h"
#include "标头.h"

3.2 自定义函数

int funAdd(int a, int b)
{    
	return (a + b);
}

源.cpp --源码如下:

#include "stdafx.h"
#include "标头.h"

int funAdd(int a, int b)
{
    return (a + b);
}

4.打开头文件,添加如下语句(自己写的自定义的函数)

#ifndef _TESTDLL_H_
#define _TESTDLL_H_

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

#endif

5.菜单栏–生成–生成解决方案(F7)

生成成功后,右键解决方案在文件资源管理器中打开文件夹(自己新建项目时的路径),在Debug目录中就可以看到生成的.dll和.lib文件

6.接下来重新建一个空项目

7.把头文件(标头.h)和生成的.dll及.lib文件拷贝到【6】新建项目的文件夹中

#pragma comment(lib,"TestDLL.lib")
#include <stdio.h>
#include "TestDLL.h"
int main()
{     
	int a = 5, b = 6;     
	int c = funAdd(a, b);     
	printf("c=%d", c);     
	getchar();
}

注:pragma comment(…)该指令将一个注释记录放入一个对象文件或可执行文件中。 常用的lib关键字,可以帮我们连入一个库文件。
和在工程设置里写上链入TestDLL.lib的效果一样(两种方式等价,或说一个隐式一个显式调用),不过这种方法写的程序别人在使用你的代码的时候就不用再设置工程settings了。告诉连接器连接的时候要找TestDLL.lib,这样你就不用在linker的lib设置里指定这个lib了。
#pragma comment( comment-type [,“commentstring”] )
该宏放置一个注释到对象文件或者可执行文件。comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。commentstring是一个提供为comment-type提供附加信息的字符串,
Remarks:
1、compiler:放置编译器的版本或者名字到一个对象文件,该选项是被linker忽略的。
2、exestr:在以后的版本将被取消。
3、lib:放置一个库搜索记录到对象文件中,这个类型应该是和commentstring(指定你要Liner搜索的lib的名称和路径)这个库的名字放在Object文件的默认库搜索记录的后面,linker搜索这个库就像你在命令行输入这个命令一样。你可以在一个源文件中设置多个库记录,它们在object文件中的顺序和在源文件中的顺序一样。如果默认库和附加库的次序是需要区别的,使用Z编译开关是防止默认库放到object模块。
4、linker:指定一个连接选项,这样就不用在命令行输入或者在开发环境中设置了。

8.Ctrl+F5

成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值