是否有可能获得一个delphi项目来创建一个lib文件作为项目的输出?

时间:2010-05-13 14:39:04

标签: delphi static-linking

我想要它创建dll和LIB。因为这个dll静态链接到另一个CPP dll。 所以我必须有lib文件。

我正在使用delphi 4的IDE

2 个答案:

答案 0 :(得分:2)

不,Delphi不会生成lib文件。它对他们毫无用处。

create a lib file from a DLL的方法。例如,您可以使用implib,如果它与您的Delphi版本一起使用。

答案 1 :(得分:2)

在C ++中使用在Delphi中创建的DLL(反之亦然)非常简单,但您需要遵循简单的方法 规则。我假设您正在尝试在C ++项目中使用Delphi DLL:

  1. 您必须使用相同的调用约定。默认情况下,Delphi使用寄存器约定(__ fastcall in C ++术语)。所有Windows DLL的默认调用约定是__stdcall,因此首先修改 Delphi源文件中的函数声明如下:

    功能 DoSomething(x,y:Integer):整数;的 STDCALL

  2. 当您使用__stdcall时,C ++期望DLL中的导出函数的名称后跟后缀,指定传递给它的参数的整体大小。因此,您的DoSomething例程应该 成为DoSomething @ 8,考虑到Integer的大小是4个字节和你的导出部分 在.dpr文件中应该如下所示:

    <强>出口
      DoSomething 名称'DoSomething @ 8'

  3. 使用函数声明创建C ++标头并将其包含在C ++项目中:

    int __ declspec (dllimport)__ stdcall DoSomething( int x, int y);

  4. 如果您使用C ++ Builder或Visual C ++,请使用implib实用程序创建导入库(.lib)。还有一个与VC ++一起提供的lib工具也可以这样做。然后链接到.lib文件而不是.dll。