如果没有头文件,.lib文件是否毫无用处
Are .lib files useless without the header files?
我有一些.lib文件,但我无法访问.h头文件。这是否意味着.lib文件现在毫无用处?
如果没有,我如何再次使用它们?
我试着在我的程序中使用这一行,但它似乎没有被编译成最终的可执行文件(用CFF资源管理器验证)。
#pragma comment(lib, "SomeLibFile.lib")
那么,链接.lib文件的唯一方法是使用它的头文件吗?是否有任何工具可以恢复.lib文件的头文件?
这取决于.lib文件代码的编写方式。如果它是一个c api,这就是extern关键字的作用。您可以找到某种程序来显示函数导出。然后您可以在代码中将它们声明为extern。但问题在于你的数据结构。
无论如何,从技术上讲,您不必拥有头文件,您可以自己定义数据结构,并使用extern关键字声明函数。
当您在编译过程结束时运行链接器时,您可以直接链接.lib。
您可以通过在链接器命令行上传递.lib
文件来链接它,不需要#pragma
。
当然,实际使用它内部的任何东西都需要知道调用约定、函数签名、用户定义类型的布局等。这些通常都由头文件提供,但也可以在文档中找到。
在任何情况下,头文件都不是编译器生成的(MIDL和CORBA确实使用机器生成的头文件,但头中的所有信息仍然手动输入.idl文件)。除非您的技术使用类型库,否则所需的信息不会保存在DLL中。
相关文章:
- 在C++中使用没有合作伙伴Class/Cpp文件的头文件是否实用
- 在头文件上包含 cpp 文件是否有缺点?
- 如何检查文件是否已存在于 fstream C++中
- 预处理的 C/C++ 文件是否特定于计算机?
- 如何使用 jpeglib.h 获取文件是否为 JPEG 类型
- 如何在 Linux 下使用 c++ 知道文件是否被其他进程使用?
- 使用 g++ 编译时列出所有 cpp/cc 文件是否正常?
- 如何检查文件是否复制成功?(便携式解决方案)C++
- 如何检查 win32 exe 文件是否已运行?(使用 win32 API 代码)
- 如何检查每个头文件是否包含必需的包含文件?
- 为许多类可能需要的所有常量变量制作独立的头文件是否是一种很好的做法?
- 使用 CodeBlocks + GCC 构建的可执行文件是否可以在任何 Windows 上运行?
- 如何检查给定文件是否是C++中的有效视频文件?
- 关于使用ifstream在C 中确定文件是否存在的问题
- #include 包含的头文件已包含的头文件是否常见?
- 如何测试文件是否被锁定和/或只读而不打开?
- 检查文件是否具有Windows c ++的可执行权限
- 检查给定的多个文件是否存在
- .txt文件是否已关闭
- 如果给定正确的运行时库,x86 可执行文件是否可以在任何 x86 平台上运行