我有一个lib文件的API。 使用该lib文件.h文件提供。 现在我想在Delphi中调用lib文件,并使用它的功能。
lib文件如何连接到Delphi?
更新:确定需要分配工作,如果我得到一个DLL怎么办?我如何将其链接到Delphi?
答案 0 :(得分:5)
您不能使用lib文件从Delphi链接到DLL。 .lib文件将由DLL的C或C ++客户端使用。
在Delphi中,您需要使用external
关键字将.h头文件手动转换为Pascal导入单元。 Delphi源代码中Windows.pas单元的一个示例。您无法使用.lib文件这一事实实际上不是一个大问题,因为无论如何都必须翻译.h文件。
答案 1 :(得分:0)
在某些情况下,可以使用Agner Fog(请参阅http://www.agner.org/optimize/?e=0,34,36)到.obj文件的目标文件转换器等工具提取.lib文件的成员。
语法是
objconv.exe libname.lib -lx
提取所有成员。
通过提取所有成员,您可以确保没有成员丢失。但是,如果存在进一步的依赖关系(对于其他.lib文件),这些将无法解决,必须手动解决。
还需要翻译头文件。
注意:也可以转换目标文件格式。 Delphi只了解OMF,而英特尔编译器(例如)仅吐出COFF。因此需要进行转换,也可以通过该工具完成。
如上所述,这只适用于某些情况,并且肯定需要在这方面有一些专业知识,因为编译器不会对错误消息提供太多帮助(通常这些消息令人恼火和误导)。