0

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

我正在使用delphi 4的IDE

4

2 回答 2

3

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

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

    函数DoSomething(x, y: Integer): Integer; 标准调用

  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++,请使用创建导入库 (.lib) 的 implib 实用程序。还有一个随 VC++ 一起提供的 lib 工具,它可以做同样的事情。然后用那个 .lib 文件而不是 .dll 链接。

于 2010-08-06T11:26:02.430 回答
2

不,Delphi 不生成 lib 文件。它对他们没有用。

有多种方法可以从 DLL 创建 lib 文件。例如,您可以使用implib,如果它与您的 Delphi 版本一起提供。

于 2010-05-13T16:16:36.627 回答