Windows系统中的lib文件是做啥用的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows系统中的lib文件是做啥用的?相关的知识,希望对你有一定的参考价值。

lib有静态lib和动态lib之分。
  静态lib将导出声明和实现都放在lib中。编译后所有代码都嵌入到宿主程序
  动态lib相当于一个h文件,是对实现部分(.dll文件)的导出部分的声明。编译后只是将导出声明部分编译到宿主程序中,运行时候需要相应的dll文件支持
  lib文件是不对外公开的,不能查看一个编译过后的文件
  有几个选择:
  1。如果你查看有同名的dll文件,可以通过vc自带的depends查看dll接口
  2。通过msdn看你使用的该lib包含的函数名,来查找其对应的头文件,头文件里面有整个lib的函数声明(可能不全)
  3。查看vc或者其他工具安装目录下的src目录,查看函数的代码
  lib文件是二进制文件,所以要查看它的内容,只能反汇编。
  用编程语言,打开lib文件的办法有三个:
  1、在object/library modules使用全路径名;
  2、把*.lib放在VC的Lib目录中
  3、修改project setting的Link->Input中的Addtional library path,加入你的目录
参考技术A 外部链接库,和DLL一样,是动态调用的文件。

websocket中的URI路径组件是做啥用的?

【中文标题】websocket中的URI路径组件是做啥用的?【英文标题】:What's the URI path component in websocket used for?websocket中的URI路径组件是做什么用的? 【发布时间】:2020-06-19 15:48:44 【问题描述】:

客户端发起 websocket 握手,并可以指定一个自定义的 URI 路径来使用。

    GET **/chat** HTTP/1.1
    Host: server.example.com
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
    Origin: http://example.com
    Sec-WebSocket-Protocol: chat, superchat
    Sec-WebSocket-Version: 13

websocket uri 采用以下形式: ws-URI = "ws:" "//" host [ ":" port ] path [ "?" query ]

如果我部署了一个监听ws://localhost:8080/ 的 websocket 服务器,并且一个客户端使用以下 uri ws://localhost:8080/chat 在那里连接,有什么区别?为什么路径组件甚至是必要的?它只是为了负载平衡吗?还是这些“端点”是孤立的?

RFC 中的以下声明让我很困惑:

GET 方法 [RFC2616] 的“Request-URI”用于标识 WebSocket 连接的端点,都允许多个域 从一个 IP 地址提供服务并允许多个 WebSocket 由单个服务器提供服务的端点。 (HERE)

【问题讨论】:

【参考方案1】:

如果您的 websocket 服务始终以相同的方式对待每个连接,则不需要在 URI 中提供路径字符串或查询字符串。 (好吧,从技术上讲,您确实必须有一个路径字符串,但每次都可以只是单个字符 '/'。)

但是,如果您的 websocket 服务希望能够向不同的客户端提供不同的内容,那么在 URI 中使用路径字符串可以方便客户端指示他们感兴趣的内容类型。也许您的聊天服务为几个不同的主题提供聊天室,在这种情况下,您可能决定让客户端使用路径字符串来指示所需的主题。 ws://localhost:8080/sportws://localhost:8080/politicsws://localhost:8080/cooking 之类的东西,或者你可以更进一步,有 ws://localhost:8080/sport/footballws://localhost:8080/sport/golfws://localhost:8080/sport/tennis,等等。

GET 方法 [RFC2616] 的“Request-URI”用于标识 WebSocket 连接的端点,都允许多个域 从一个 IP 地址提供服务...

这只是普通的虚拟主机。基于 URI 的 host 部分,在单个 IP 地址上运行的网络服务器可以支持多个网站。

...并允许单个服务器为多个 WebSocket 端点提供服务。

我给出的每个路径示例都标识了一个不同的独立端点,所有端点都由您的一个 websocket 服务器提供服务。

在这个特定的示例中,websocket 端点是某种聊天室,但更一般地说,websocket 端点与某种数据馈送相关联,通常是单向馈送(websocket 可能会提供当前股票价格流某些由 URI 查询字符串指定的股票集合),但可能是双向提要,也可能是交互式双向提要(例如您的聊天室)。

【讨论】:

感谢您澄清这些概念。但是,我对如何实施该逻辑有一些疑问。如果您了解 Twisted Framework (python),这将是一个很好的猜测:) 您在以下代码中看到 sn-p websocket 库的作者决定使用“putChild”接口来代表“文件”资源添加自定义 websocket 路径。尽管对于单个 url 路径看起来足够了,但我认为为特定端点(以及 WebsocketServerFactory 的新实例)创建多个服务器协议并不方便。你会推荐(1/2) 有一个服务器协议检查请求实例内的路径?因此,这种方式有不同的对象或函数实现该特定端点的逻辑吗?或者你会像我描述的那样推荐几个自定义服务器协议,每个协议都是为特定端点构建的?github.com/crossbario/autobahn-python/blob/master/examples/… (2/2)

以上是关于Windows系统中的lib文件是做啥用的?的主要内容,如果未能解决你的问题,请参考以下文章

win7 c盘 roaming文件夹是做啥用的,可以删除吗

C盘的MSBuild,MSECache,文件夹是做啥用的?

WINDOWS开机后的这两个进程是做啥用的?

Visual Studio 中的“stdafx.h”是做啥用的?

我的手机里莫名其妙出现了trash文件夹,请问这两个文件夹是做啥用的?

windows7中环境变量里的path路径是做啥用的?