如何看懂lib文件里的东西???
来源:百度知道 编辑:UC知道 时间:2024/06/22 02:34:30
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