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

在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文件

相关推荐

  1. C++动态dll生成lib文件

    2024-03-15 13:48:01       20 阅读
  2. 实现动态DLL)注入的C++编程

    2024-03-15 13:48:01       43 阅读
  3. Windows DLL动态)的用处

    2024-03-15 13:48:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-15 13:48:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-15 13:48:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-15 13:48:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-15 13:48:01       20 阅读

热门阅读

  1. Filebeat rpm方式安装及配置

    2024-03-15 13:48:01       22 阅读
  2. ESP32 域名解析得到IP地址

    2024-03-15 13:48:01       22 阅读
  3. 蓝桥杯2023年-三国游戏(贪心)

    2024-03-15 13:48:01       22 阅读
  4. 面试中如何介绍mysql的B+树

    2024-03-15 13:48:01       19 阅读
  5. 计算机视觉(CV)技术的优势和挑战

    2024-03-15 13:48:01       25 阅读
  6. C++ 4种类型转换运算符

    2024-03-15 13:48:01       19 阅读
  7. python的单例模式实现

    2024-03-15 13:48:01       21 阅读
  8. UE5 C++ TPS开发 学习记录(10

    2024-03-15 13:48:01       21 阅读
  9. EXEC sp_executesql 与 EXEC 的区别、使用场景和例子

    2024-03-15 13:48:01       21 阅读
  10. Android垃圾回收机制

    2024-03-15 13:48:01       22 阅读
  11. Unity3D MMORPG角色的UI血条管理详解

    2024-03-15 13:48:01       21 阅读