没有头文件,.lib文件是否无用?

时间:2012-02-12 05:03:13

标签: c++ header

我有一些.lib文件,但我无法访问.h头文件。 这是否意味着.lib文件现在没用了?

如果没有,我该如何再次使用它们?

我尝试在我的程序中使用这一行,但似乎没有编译成最终的可执行文件(使用CFF Explorer验证)。

#pragma comment(lib, "SomeLibFile.lib")

那么,链接.lib文件的唯一方法是通过使用它的头文件? 是否有任何工具可以恢复.lib文件的头文件?

2 个答案:

答案 0 :(得分:5)

这取决于.lib文件代码的编写方式。如果它是一个c api,这就是extern关键字的用途。你可以找到某种程序来向你显示函数exports。然后你可以在代码中将它们声明为extern。问题是你的数据结构。

无论如何,您在技术上不必拥有头文件,您可以自己定义数据结构,并使用extern关键字声明函数。

您可以在编译过程结束时运行链接器时链接.lib。

答案 1 :(得分:2)

您可以通过在链接器命令行上传递.lib文件来链接,不需要#pragma

当然,实际使用其中的任何内容都需要了解调用约定,函数签名,用户定义类型的布局等。这些通常都是由头文件提供的,但也可以在文档中找到。

在任何情况下,头文件都不是编译器生成的(MIDL和CORBA确实使用机器生成的头文件,但是头文件中的所有信息仍然手动输入到.idl文件中)。除非您的技术使用类型库,否则所需信息不会与DLL一起保存。