如何看懂lib文件里的东西???

来源:百度知道 编辑:UC知道 时间:2024/06/22 02:34:30
2个问题
1. 如果我只有lib文件,没有.h文件,在link .lib的情况下,可以使用到lib文件吗?还是需要特殊的语句才能使用到?
2. 能不能,或者有没有这样的软件,能让lib里的东西可以被看懂……

1、只有lib文件,没有h文件,可以使用lib,前提是你必须正确的使用,否则编不过的
反过来说,如果你能正确的用,你也就可以自己写一个h文件了,哈哈。
或者说,你如果要使用一个lib,在没有h文件的情况下,是很难的

2、有这样的软件,可以看懂lib里面的东西,比如dumpbin.exe
通常windows系统里面的lib文件是COFF格式的,网上有很多COFF格式的介绍,你可以看下
VC各个版本的开发环境,生成的LIB文件,都是采用COFF格式的
开发环境自带的有个dumpbin.exe的文件,可以把lib文件解出来,方便分析其内部的东西的。

但BORLAND公司出的开发环境,也许使用的CMF格式的,网上也有介绍的。
而嵌入式开发环境下的LIB文件,通常采用的是ELF的格式

想用一个静态库必须要里面函数的声明,就是头文件。有些动态库都需要头文件呢~没有头文件绝对不可能。

完全看懂是不可能的。要是看懂了相当于反编译了!
如果只要使用,找出一部分函数是有可能的。
你去网上搜索一下“lib 文件结构”

其实可以看到一部分,看到一些函数,你用记事本打开lib。可以看到
xxx@yyy@@zzz 之类的东西。
zzz代表函数名,yyy代表该函数所在的类名,zzz代表参数类型。

可以猜到一部分`~,这个是C++写成的库,C语言写的库是没有类名和参数名的(因为不支持类也不支持重载)。

你再把相映的头文件自己补写上,

再#include "头文件"
#pragma comment(lib,"lib文件");

祝你好运了~~

我们自己写程序,也可以 把 一个程序分成很多个小程序,先编译成一个一个.obj文件,再链接成 exe 文件.

lib 实际上是一堆 obj 文件的集合体。可能是别人写的,可能是编译器带的。
如果只有别人写的lib文件,没有它的 .h文件,就不能用。用为调用 li