C++由动态链接库dll生成lib文件

博客介绍了MSVC中动态库的使用方法,包括动态加载和静态加载。静态加载需dll对应的lib文件,但很多dll无附带。文章重点讲解从dll文件生成lib文件的方法,先利用pexports工具生成def文件,再通过msvc命令提示工具生成lib文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在msvc中,对于动态库的使用,通常有两种方法,一种方法是动态加载,在程序运行过程中,使用LoadLibrary()、GetProcessAddress()和FreeLibrary()三个函数动态的对动态库进行加载和卸载,此方法在编译运行时只需要dll文件的支持即可;
另一种方法是静态加载,静态加载不仅需要dll文件,在程序编译时也需要dll文件对应的lib文件,这个lib文件会记录动态库名称与函数入口,使程序开始运行时能够正确的对动态库文件进行载入并使用。 但是很多动态库dll文件,并没有附带lib文件,因此就无法以静态加载的方式去使用。但是此问题也是有解决办法的,就是从dll文件去生成一个lib文件。

下面就介绍如何将dll文件去生成对应的lib文件。

1.生成def文件

需要用到一个工具:[pexports] (sourceforge.net/projects/mi…) 将下载的pexports解压,得到pexport.exe,将pexport.exe拷贝到动态库所在目录,打开cmd,切换到此目录

输入

pexport.exe libvlc.dll > libvlc.def

这样就能够将libvlc.dll这个动态库文件生成libvlc.def文件了

2.生成lib文件

在开始,程序菜单中,找到msvc命令提示工具并打开,切换到动态库所在目录

输入

lib /def:libvlc.def /MACHINE:x86

正在创建

Microsoft (R) Library Manager Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

   正在创建库 libvlc.lib 和对象 libvlc.exp

之后就可以得到libvlc.exp、libvlc.lib这两个文件了,libvlc.lib就是我们要的动态库libvlc.dll对应的lib文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PaQiuQiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值