使用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.libSeqList.dll都已经制作成功,下面开始使用。

使用SeqList.libSeqList.dll

新建解决方案Project.sln,并新建includelib文件,并将SeqList.hSeqList.dll复制到.sln 同级目录。

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

并在连接器-添加附加依赖项中加入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编译动态库并使用的更多相关文章

  1. Windows下使用Visual Studio 2010编译ffmpeg全过程

    在visual studio 2010中调用ffmpeg http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html Windows下使用Visual S ...

  2. Visual studio 2017编译 boost

    下载: https://www.boost.org/   或者 https://dl.bintray.com/boostorg/release/1.66.0/source/ 下载完成以后解压到自己想要 ...

  3. 使用Visual Studio 2017编译opencv 3.2版本

    一.背景介绍 opencv是一个很强大的开源的计算机视觉库,应用领域如人机互动,图像处理,人脸识别,和现实生活中智能设计的关系很紧密.现在官方提供的编译包中,c++的只提供了x64位的library, ...

  4. Microsoft Visual Studio 2017 编译最新版 libuv 1.x

    步骤很简单 1 下载最新版的 libuv(地址:https://github.com/libuv 2 安装Git,Python 2.7 ,cmake(这里使用的是 3.11.0-win64-x64 版 ...

  5. 如何使用Visual Studio 2017调试.net库源代码

    在Visual Studio 2017按如下步骤设置: 1.取消选中(工具 - >选项 - >调试 - >仅我的代码)复选框.2.确保设置了(工具 - >选项 - >调试 ...

  6. windows Visual Studio 2017 编译 HEVC cmake-3.8.1-win64-x64.msi 下载

    ttps://github.com/OpenHEVC/openHEVC 下载一 直接下载源码(可选)或下载源码包,我这里下载的是源码 打开 Visual Studio () 去 github 找到源码 ...

  7. Windows下使用Visual Studio 2010 编译ffmpeg全过程

    (注意:请务必先阅读:七,后记补充:) ffmpeg是一个开源的多媒体库,使用非常广泛. 在linux下编译ffmpeg非常简单,而在windows下编译就不是那么容易了.一般在windows下使用M ...

  8. 【FFMPEG】Windows下使用Visual Studio 2010编译ffmpeg全过程

    原文  http://www.cnblogs.com/xylc/p/3683203.html 主题 FFmpegWindowsVisual Studio ffmpeg是一个开源的多媒体库,使用非常广泛 ...

  9. Microsoft Visual Studio 2017 编译最新版 libuv 1.x 并且生成 LIB 和 DLL 两种模式

    以为昨天晚上编译通过就可以了,哪知道,早上编译DLL的一车的报错 今天开始逐个解决,终于把引用的问题一亿解决了,具体步骤如下 1 在 Windows 平台下编译出错,显示导出未定义,打开 uv-win ...

  10. 在Windows平台用visual studio编译的可执行文件部署时报:应用程序无法正常启动0xc000007b(跟DirectX9无关的原因)

    最近在做EasyDarwin开源流媒体服务器Windows版本编译与部署时发现一个问题,在开发机本机运行都很正常,但是部署到目标机器(未安装vs等开发环境)时,莫名其妙报出了"应用程序无法正 ...

随机推荐

  1. o(nlogn)求最长上升子序列

    \(O(nlog_n)\)求最长上升子序列LIS 假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5.下面一步一步试着找出它. 我们定义一个序列B,然 ...

  2. JVM调优笔记(一)--Nacos GC引发的服务批量下线问题

    故障背景 线上批量发服务下线的告警邮件,偶发nacos连接超时.采用了spring boot admin(以下称sba)进行服务监控. 原因分析 因为sba服务是基于nacos对其它服务进行监控,所以 ...

  3. 禁用Chrome浏览器Websocket

    前言:最近遇到关于Websocket的相关测试,推荐一个禁用Chrome浏览器Websocket的扩展插件 一.下载使用 1.https://github.com/arthepsy/chrome-di ...

  4. cryptohack wp day(1)

    就从头开始吧 第一题 (ASCII) 一道简单的ASCII码转换,直接用题目的提示代码解就行了 ascii=[99, 114, 121, 112, 116, 111, 123, 65, 83, 67, ...

  5. Grafana系列-统一展示-7-ElasticSearch数据源

    系列文章 Grafana 系列文章 ElasticSearch 数据源 Grafana内置了对Elasticsearch的支持.你可以进行多种类型的查询,以可视化存储在Elasticsearch中的日 ...

  6. 在 Transformers 中使用对比搜索生成可媲美人类水平的文本 🤗

    1. 引言 自然语言生成 (即文本生成) 是自然语言处理 (NLP) 的核心任务之一.本文将介绍神经网络文本生成领域当前最先进的解码方法 对比搜索 (Contrastive Search).提出该方法 ...

  7. 2023-05-20:go语言的slice和rust语言的Vec的扩容流程是什么?

    2023-05-20:go语言的slice和rust语言的Vec的扩容流程是什么? 答案2023-05-20: go语言的slice扩容流程 go版本是1.20.4. 扩容流程见源码见runtime/ ...

  8. vue cli3 整合Cesium,处理build 时内存溢出问题

    一直使用cesium,但是都是使用script直接引入的,但是在将其放置在增加路由的子页面中中时会出现一个问题,刷新后提示cesium is undefined 看直接引入cesium.js < ...

  9. INFINI Labs 产品更新 | Console 新增数据比对、新增数据看板表格组件及支持下钻功能等

    INFINI Labs 产品更新啦~,本次产品版本更新包括 Gateway v1.14.0.Console v1.2.0.Easysearch v1.1.1 等,其中 Console 在上一版基础上做 ...

  10. LINIUX 查询命令的 区别 chich whereis locate fing

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which  查看可执行文件的位置. whereis 查看文件的位置. locate   配合数据库查看文件位置 ...