在windows平台使用Visual Studio 2017编译动态库并使用
使用VS stdio制作顺序表的库文件
- .lib与.dll 区别
- lib是编译时需要的
- dll是运行时需要的
1、新建头文件和源文件
- SeqList.h
// SeqList.h
#ifndef SEQLIST_H__
#define SEQLIST_H__
#define N 10
typedef int SLDataType;
typedef struct SeqList
{
SLDataType data[N];
int size;
} SeqList;
void SeqInit(SeqList *L); // 初始化
void SeqPushBack(SeqList *L, SLDataType x); // 尾插
void SeqPrit(SeqList ps); // 打印
#endif
- SeqList.c
// SeqList.h
#include <stdio.h>
#include <stdlib.h>
#include "SeqList.h"
void SeqInit(SeqList *L)
{
L->size = 0;
}
void SeqPushBack(SeqList *L, SLDataType x)
{
L->data[L->size] = x;
L->size++;
}
void SeqPrit(const SeqList L)
{
for (size_t i = 0; i < L.size; i++)
{
printf("%d\t", L.data[i]);
}
printf("\n");
}
2、编译.lib库文件
依次点击调试-属性,打开属性页面。

在属性页面,选择配置Debug,平台选择x64,更改常规-属性默认值-配置类型选项,并选择 静态库。

点击生成-生成解决方案,看到生成SeqList.lib。


在x64-Debug文件下面可以看到生成的SeqList.lib。

2、编译.dll库文件
然后再点击生成-清理生成解决方案,并同样打开属性页面。

更改常规-属性默认值-配置类型选项,并选择动态库。

点击生成-生成解决方案,看到生成SeqList.dll。


在x64-Debug文件下面可以看到生成的 SeqList.dll。

至此,SeqList.lib 和 SeqList.dll都已经制作成功,下面开始使用。
使用SeqList.lib 和 SeqList.dll
新建解决方案Project.sln,并新建include和lib文件,并将SeqList.h和SeqList.dll复制到.sln 同级目录。

依次点击调试-属性,打开属性配置页面。将include和lib目录分别加到包含目录和库目录。

并在连接器-添加附加依赖项中加入SeqList.lib

然后编写测试文件,注意此时没有用到SeqList.c 。
#include <stdio.h>
#include <stdlib.h>
#include "include/SeqList.h"
int main(int argc, char** argv)
{
SeqList L;
SeqInit(&L);
SeqPushBack(&L, 1);
SeqPushBack(&L, 5);
SeqPushBack(&L, 9);
SeqPushBack(&L, 7);
SeqPrint(L);
return 0;
}
点击生成解决方案,运行结果如下

行文至此,关于自定义库文件的制作与使用全部介绍完毕。
在windows平台使用Visual Studio 2017编译动态库并使用的更多相关文章
- Windows下使用Visual Studio 2010编译ffmpeg全过程
在visual studio 2010中调用ffmpeg http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html Windows下使用Visual S ...
- Visual studio 2017编译 boost
下载: https://www.boost.org/ 或者 https://dl.bintray.com/boostorg/release/1.66.0/source/ 下载完成以后解压到自己想要 ...
- 使用Visual Studio 2017编译opencv 3.2版本
一.背景介绍 opencv是一个很强大的开源的计算机视觉库,应用领域如人机互动,图像处理,人脸识别,和现实生活中智能设计的关系很紧密.现在官方提供的编译包中,c++的只提供了x64位的library, ...
- Microsoft Visual Studio 2017 编译最新版 libuv 1.x
步骤很简单 1 下载最新版的 libuv(地址:https://github.com/libuv 2 安装Git,Python 2.7 ,cmake(这里使用的是 3.11.0-win64-x64 版 ...
- 如何使用Visual Studio 2017调试.net库源代码
在Visual Studio 2017按如下步骤设置: 1.取消选中(工具 - >选项 - >调试 - >仅我的代码)复选框.2.确保设置了(工具 - >选项 - >调试 ...
- windows Visual Studio 2017 编译 HEVC cmake-3.8.1-win64-x64.msi 下载
ttps://github.com/OpenHEVC/openHEVC 下载一 直接下载源码(可选)或下载源码包,我这里下载的是源码 打开 Visual Studio () 去 github 找到源码 ...
- Windows下使用Visual Studio 2010 编译ffmpeg全过程
(注意:请务必先阅读:七,后记补充:) ffmpeg是一个开源的多媒体库,使用非常广泛. 在linux下编译ffmpeg非常简单,而在windows下编译就不是那么容易了.一般在windows下使用M ...
- 【FFMPEG】Windows下使用Visual Studio 2010编译ffmpeg全过程
原文 http://www.cnblogs.com/xylc/p/3683203.html 主题 FFmpegWindowsVisual Studio ffmpeg是一个开源的多媒体库,使用非常广泛 ...
- Microsoft Visual Studio 2017 编译最新版 libuv 1.x 并且生成 LIB 和 DLL 两种模式
以为昨天晚上编译通过就可以了,哪知道,早上编译DLL的一车的报错 今天开始逐个解决,终于把引用的问题一亿解决了,具体步骤如下 1 在 Windows 平台下编译出错,显示导出未定义,打开 uv-win ...
- 在Windows平台用visual studio编译的可执行文件部署时报:应用程序无法正常启动0xc000007b(跟DirectX9无关的原因)
最近在做EasyDarwin开源流媒体服务器Windows版本编译与部署时发现一个问题,在开发机本机运行都很正常,但是部署到目标机器(未安装vs等开发环境)时,莫名其妙报出了"应用程序无法正 ...
随机推荐
- UE4 内存写坏导致异常崩溃问题记录
1. 问题表现 经常出现进程崩溃,崩溃堆栈较为底层 原因基本上都是 read write memory 时触发了异常,盘查后初步怀疑是内存写坏了. 2. 排查期 UE 支持各种内存分配器: TBB A ...
- 笔记二:进程间的通信(fork、孤儿进程,僵死进程等)
以下是以前学习<unix环境高级编程>时的一些笔记和测试代码,好久没看过了,没有再次验证,存在错误的话,希望见谅,分享下主要是!!! ps 查看系统中的进程 ps– ...
- 前端 本地缓存localStorage/sessionStorage
当我们刷新页面时,除了路由,页面的当前状态及数据会全部清空/重置,包括浏览器标题. 如果想保存刷新前的一些数据,可以通过window.localStorage/sessionStorage,在浏览器里 ...
- 性能_2 Jmeter脚本增强
一.写脚本注意事项(回顾): 协议: http,https必须写 域名或ip: 不能有/ 请求方法: 看清楚接口文档 路径: 不要把 域名和ip再次 路径中,前后空格要看清楚 %20 空格的urlen ...
- 2022-10-21:你将得到一个整数数组 matchsticks ,其中 matchsticks[i] 是第 i 个火柴棒的长度。 你要用 所有的火柴棍 拼成一个正方形。 你 不能折断 任何一根火柴
2022-10-21:你将得到一个整数数组 matchsticks ,其中 matchsticks[i] 是第 i 个火柴棒的长度. 你要用 所有的火柴棍 拼成一个正方形. 你 不能折断 任何一根火柴 ...
- 基于.NetCore开源的Windows的GIF录屏工具
推荐一个Github上Start超过20K的超火.好用的屏幕截图转换为 GIF 动图开源项目. 项目简介 这是基于.Net Core + WPF 开发的.开源项目,可将屏幕截图转为 GIF 动画.它的 ...
- Odoo 13之十三 :开发之创建网站前端功能
Odoo 13开发之创建网站前端功能 Odoo 起初是一个后台系统,但很快就有了前端界面的需求.早期基于后台界面的门户界面不够灵活并且对移动端不友好.为解决这一问题,Odoo 引入了新的网站功能,为系 ...
- Python连接es笔记二之查询方式汇总
本文首发于公众号:Hunter后端 原文链接:Python连接es笔记二之查询方式汇总 上一节除了介绍使用 Python 连接 es,还有最简单的 query() 方法,这一节介绍一下几种其他的查询方 ...
- CAPL 脚本对信号收发的判断
在CAPL脚本中,您可以使用条件语句和CAN消息的收发函数来进行信号的判断和处理.以下是一些常见的CAPL脚本语句用于信号收发的判断: 1.判断消息是否收到 on message can_messag ...
- selenium-wire简介
一.简介 以下来自chatGPT回答: selenium-wire是一个基于selenium的Python库,它扩展了selenium的功能,使得我们可以在自动化测试中直接访问和修改浏览器的网络请求和 ...