Microsoft Visual Studio导入库的格式
Format of Microsoft Visual Studio import library
众所周知,Visual Studio库 *.lib文件是一个unix" ar"存档,其中包含coff格式的对象模块。但是我发现,导入DLL的库是一个不是Coff对象的小块(或存根(的档案。一个示例是库VS15 lib ucrt ucrt.lib。这些块包含函数的名称和定义此功能的DLL库的引用。这是" puts"功能的存根的示例(十六进制(:
00-00-FF-FF-00-00-4C-01-39-E9-80-55-26-00-00-00 ......L.9..U&...
93-00-08-00-5F-70-75-74-73-00-61-70-69-2D-6D-73 “..._puts.api-ms
2D-77-69-6E-2D-63-72-74-2D-73-74-64-69-6F-2D-6C -win-crt-stdio-l
31-2D-31-2D-30-2E-64-6C-6C-00 1-1-0.dll.
绝对不是Coff对象(尽管它包含386个体系结构签名0x14c Coff(。我找不到有关这些导入对象格式的任何文档。有人知道这种格式吗?
可能是非正式规格?
可能是可以处理此格式的一些源代码?
这是所谓的Microsoft"简短导入"目的。基本上,它由20个字节标头组成(与常规COFF标头相同(,其次是两个零终止字符串:导入符号名称和DLL名称。
"简短导入"标题与前四个签名字节中的常规COFF标题不同:0x00 0x00 0xFF 0xFF
(没有常规的COFF可以从此开始,因为它将读取为"未知机器,65535个部分","是胡说八道(。
"简短导入"格式标题在这里充分描述:MSDN PE格式。
因此,在上面的示例中,我们有:
0x00 0x00 0xff 0xff->"简短导入"签名
0x00 0x00->版本0(未使用(
0x4c 0x01->机器i386
0x39 0xe9 0x80 0x55->时间/日期邮票(2015年6月17日,6:27:53 UTC(
0x26 0x00 0x00 0x00->标头(38个字节(之后的字符串大小
0x93 0x00 - >序数/提示(147(
0x08 0x00 - >位字段("代码">
- 如何在openssl-ecc中获取十六进制格式的私钥
- 尝试导入pybind-opencv模块时出现libgtk错误
- 导入库可以跨dll版本工作吗
- 将"打开的CV图像"中的"颜色"转换为整数格式
- TDateTime格式在C++Builder中不会更改
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 检查不带转换的扫描格式
- 建议在运行时将带有类实例的列表从c++导入qml
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- 是否可以从格式字符串中检索"width"
- clang格式:宏的缩进
- clang格式:禁用排序包含
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 将RGB图像保存为PPM格式
- 询问在设计我的手臂模拟器功能表示格式1
- Assimp - 如何使用任何文件格式导入带有纹理的网格?
- Microsoft Visual Studio导入库的格式
- 用于将三维模型导入OpenGL/C++项目的推荐文件格式和图形库
- 如何使用WinCrypt和C++导入PEM格式的私钥
- 简单的3D动画文件格式需要c++导入/导出