社区
进程/线程/DLL
帖子详情
怎样生成.dll文件对应的.lib文件
hnxgy
2003-09-27 09:15:45
我现在有一个别人提供的.dll文件,为了隐式调用其中的函数,需要其对应的.lib文件,请问怎样生成.dll文件对应的.lib文件?
...全文
53
2
打赏
收藏
怎样生成.dll文件对应的.lib文件
我现在有一个别人提供的.dll文件,为了隐式调用其中的函数,需要其对应的.lib文件,请问怎样生成.dll文件对应的.lib文件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ljp940531
2003-09-27
打赏
举报
回复
为无LIB的DLL制作LIB函数符号输入库
作者:force_eagle
本文介绍了在VC中针对无LIB时的DLL隐式链接,制作可供VC++使用的LIB函数符号输入库。具体步骤如下:
一、使用VC++的工具DUMPBIN将DLL中的导出函数表导出到一定义(.DEF)文件
EXAMPLE:
DUMPBIN VideoDeCoder.dll /EXPROTS /OUT:VideoDeCoder.def
二、将导出的.DEF文件整理为一符合.DEF个数的函数导出文件
EXAMPLE:VideoDeCoder.DEF 文件内容如下Dump of file VideoDeCoder.dll
File Type: DLL
Section contains the following exports for VideoDeCoder.dll
0 characteristics
3D49E48F time date stamp Fri Aug 02 09:46:55 2002
0.00 version
1 ordinal base
11 number of functions
11 number of names
ordinal hint RVA name
1 0 00010F60 _TM_ClearDecoderBuff@4
2 1 00010E80 _TM_CloseDecoder@4
3 2 00010F00 _TM_DecodePicture@4
4 3 00010ED0 _TM_DecodePictureHeader@4
5 4 00010FD0 _TM_GetFileEnd@4
6 5 00011030 _TM_GetUValue@4
7 6 00011060 _TM_GetVValue@4
8 7 00011000 _TM_GetYValue@4
9 8 00010E10 _TM_OpenDecoder@8
10 9 00010F30 _TM_ReturnType@4
11 A 00010F90 _TM_SetFileEnd@8
Summary
2000 .data
1000 .rdata
1000 .reloc
15000 .text
按照以下方法整理:
1)添加LIB说明 LIBRARY "VideoDeCoder" ;"xx"为DLL名称
DESCRIPTION "VideoDeCoder library"
2)去掉导出函数说明端以外的内容,在LIB说明下添加 "EXPROTS" 说明导出函数 LIBRARY "VideoDeCoder"
DESCRIPTION "VideoDeCoder library"
EXPORTS
ordinal hint RVA name
1 0 00010F60 _TM_ClearDecoderBuff@4
2 1 00010E80 _TM_CloseDecoder@4
3 2 00010F00 _TM_DecodePicture@
4 3 00010ED0 _TM_DecodePictureH
5 4 00010FD0 _TM_GetFileEnd@4
6 5 00011030 _TM_GetUValue@4
7 6 00011060 _TM_GetVValue@4
8 7 00011000 _TM_GetYValue@4
9 8 00010E10 _TM_OpenDecoder@8
10 9 00010F30 _TM_ReturnType@4
11 A 00010F90 _TM_SetFileEnd@8
3)将所有的函数放至行首,去掉 "hint" 和 "RVA" 数据,留下函数的序号 "ordinal" ,在序号前加上 "@" 符号 形成 "_导出函数名@参数字节和 @序号" 此种格式(__stdcall 方式调用导出的函数符号是 "函数名称@参数字节和"). 最后形成.DEF文件如下: LIBRARY "VideoDeCoder"
DESCRIPTION "VideoDeCoder library"
EXPORTS
TM_ClearDecoderBuff@4 @1
TM_CloseDecoder@4 @2
TM_DecodePicture@4 @3
TM_DecodePictureHeader@4 @4
TM_GetFileEnd@4 @5
TM_GetUValue@4 @6
TM_GetVValue@4 @7
TM_GetYValue@4 @8
TM_OpenDecoder@8 @9
TM_ReturnType@4 @10
TM_SetFileEnd@8 @11
三、使用VC++的LIB工具,带/DEF:(.def文件名) /MACHINE:IX86(80X86机器),就输出符合VC++格式的的LIB文件了.
EXAMPLE:LIB /DEF:VideoDeCoder.def /MACHINE:IX86
四、接时带上LIB文件链接;注意的是当有些动态库DUMPBIN的只有函数名,无"@nn"的参数格式,如C++Builder写的DLL,输出就只有函数名符号,链接时就会报错: error LNK2002:unresolved external symbol "functionname@nn" 提示程序中引入的函数符号无法识别,这时只要将DEF文件中相应的函数名称改为functionname@nn方式,重新建立 LIB,重新链接即可.
lbird
2003-09-27
打赏
举报
回复
没办法
vs2010
生成
的gsl1.8的
dll
文件
和
lib
文件
vs2010
生成
的gsl1.8的
dll
文件
和
lib
文件
,含有gsl-1.8.exe以及gsl-1.8-src.exe
文件
以及
生成
的
lib
gsl.
dll
、
lib
gsl.
lib
;
lib
gslcblas.
lib
;
lib
gsl_d.
lib
;
lib
gslcblas_d.
lib
以及相
对应
的
dll
文件
,配置说明,
生成
步骤文档
Lib
文件
生成
器 (
DLL
2
Lib
)
C++Builder 的链接器在链接
DLL
时需要导入库(Import
Lib
rary),在有些情况下,只能得到
DLL
文件
,而没有导入库
文件
(比如用 Delphi 开发的
DLL
),使用这个工具可以方便的
生成
DLL
对应
的导入库和模块定义
文件
DEF...
Windows进程常用
DLL
模块注入技术
进程调试级注入,涉及调试器相关功能调用知识点
dll
模块重定位内存注入,模拟操作系统加载PE
文件
方式,直接将
dll
文件
内存数据写入目标进程并执行。 导入表注入,涉及PE相关知识点,增加区段,移动导入表,增加导入...
Dll
2
Lib
.exe
VC++ 和 C++Builder 的链接器在链接
DLL
时需要导入库(Import
Lib
rary),在有些情况下,只能...如用 Delphi 开发的
DLL
),使用这个工具可以方便的
生成
DLL
对应
的 导入库和模块定义
文件
DEF(module-definition file)。
.
dll
、.
lib
、.a的转换
在使用Mingw进行开发时,有时依赖的库只有.
dll
文件
,而Mingw需要的是.a
文件
,这时就需要通过.
dll
文件
生成
一个.a
文件
。 以
lib
mysql.
dll
为例,说明如何
生成
lib
mysql.a: gendef
lib
mysql.
dll
dll
tool -d
lib
mysql.def ...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章