我有一些.lib文件,但我无法访问.h头文件。 这是否意味着.lib文件现在没用了?
如果没有,我该如何再次使用它们?
我尝试在我的程序中使用这一行,但似乎没有编译成最终的可执行文件(使用CFF Explorer验证)。
#pragma comment(lib, "SomeLibFile.lib")
那么,链接.lib文件的唯一方法是通过使用它的头文件? 是否有任何工具可以恢复.lib文件的头文件?
答案 0 :(得分:5)
这取决于.lib文件代码的编写方式。如果它是一个c api,这就是extern关键字的用途。你可以找到某种程序来向你显示函数exports。然后你可以在代码中将它们声明为extern。问题是你的数据结构。
无论如何,您在技术上不必拥有头文件,您可以自己定义数据结构,并使用extern关键字声明函数。
您可以在编译过程结束时运行链接器时链接.lib。
答案 1 :(得分:2)
您可以通过在链接器命令行上传递.lib
文件来链接,不需要#pragma
。
当然,实际使用其中的任何内容都需要了解调用约定,函数签名,用户定义类型的布局等。这些通常都是由头文件提供的,但也可以在文档中找到。
在任何情况下,头文件都不是编译器生成的(MIDL和CORBA确实使用机器生成的头文件,但是头文件中的所有信息仍然手动输入到.idl文件中)。除非您的技术使用类型库,否则所需信息不会与DLL一起保存。