dll生成对应的导入库lib
来源:互联网 发布:max232与单片机连接图 编辑:程序博客网 时间:2024/04/28 13:04
需要的工具:两个命令行工具,一个是dumpbin.exe,另一个是lib.exe(我的vs2008,在D:\Programe Files\Microsoft Visual Studio 9.0\VC\bin下)。由于是命令行工具,需要用cmd打开(运行/cmd)。也许打开的任意一个工具的时候会遇到一个问题:缺少mspdb80.dll,那在***\Microsoft Visual Studio 9.0\Common7\IDE下面拷一个到工具的目录。【纠错:需要把mspdbsrv.exe、mspdbcore.dll 和 mspdb80.dll三个文件一起拷贝过去,把\Microsoft Visual Studio 9.0\Common7\IDE下的mspdbsrv.exe、mspdbcore.dll 和 mspdb80.dll三个文件一起考到Microsoft Visual Studio 9.0\VC\bin下】
开始实战
1、用dumpbin生成def文件
用命令行直接(cd)dumpbin.exe所在目录,输入命令"dumpbin Test.dll /EXPORTS /OUT:Test.def"(注意命令没有引号),其中Test.dll是你的dll文件名字(如果dll不在当前cmd目录,那名字得包含路径),Test.def是生成的def文件,也可以包含生成的文件路径(比如:C:/Test.def)。然后回车即可生成def文件。
2、修改def文件格式
dll生成的def文件内容如下:
File Type: DLL
Section contains the following exports for Test_DevelopDll_d.dll
00000000 characteristics
4E6AD271 time date stamp Sat Sep 10 10:58:57 2011
0.00 version
1 ordinal base
2 number of functions
2 number of names
ordinal hint RVA name
1 0 00011073 Add = @ILT+110(?Add@@YAHHH@Z)
2 1 000110BE Multiply = @ILT+185(?Multiply@@YAHHH@Z)
Summary
1000 .data
1000 .idata
2000 .rdata
1000 .reloc
1000 .rsrc
4000 .text
10000 .textbss
黑体字表明了导出的函数名,然后根据.def文件格式来修改dll导出的def文件。
修改后如下:
EXPORTS
Add @ 1
Multiply @ 2
保存修改后的def文件(假定现在修改后的def文件名为位Test.def)
3、用lib.exe生成lib文件
假定当前的cmd命令行目录还是在两个工具的目录下,直接输入命令:"lib /def:Test.def /MACHINE:IX86 /out:Test.lib"(注意命令没有引号),其中Test.def是修改后的def文件名(可写成绝对路径+名字),Test.lib是生成的lib文件名(名字可包含生成路径),然后回车,大功告成!
- dll生成对应的导入库lib
- dll生成对应的导入库lib
- dll工程lib库的生成问题
- 如何通过dll文件生成对应的lib文件(开发人员的一个小技巧)
- 如何通过dll文件生成对应的lib文件(开发人员的一个小技巧)
- dll文件导出对应的lib文件
- [转]关于创建dll项目无法生成对应Lib文件的问题
- dll和lib(包括静态链接库和与dll同时生成的lib)
- dll和lib(包括静态链接库和与dll同时生成的lib)
- dll和lib(包括静态链接库和与dll同时生成的lib)
- MFC动态库的生成文件lib和.dll讨论
- DLL与LIB库文件的生成和使用
- DLL与LIB库文件的生成和使用---C++
- DLL与LIB库文件的生成和使用---C++
- DLL与LIB库文件的生成和使用---C++
- DLL与LIB库文件的生成和使用---C++
- DLL与LIB库文件的生成和使用---C++
- 动态链接库dll和lib文件的生成
- 一些概念
- 七里香
- Block - 6
- STM32F103ZET+DM9051--SPI+以太网+web
- Android异常信息统计
- dll生成对应的导入库lib
- Java基础--网络编程
- Ubuntu安装QQ
- 新bolg地址 http://www.milletblog.com/
- ActiveMQ学习笔记(1)——JMS的概念
- 某单位“探索性测试”内训圆满结束!
- 完美解决安装Adobe AIR时出错的方法
- Leetcode -- Maximal Rectangle
- C语言在linux下获取网络参数