我希望它创建 dll 和 LIB。因为这个 dll 静态链接到另一个 CPP dll。所以我必须有lib文件。
我正在使用delphi 4的IDE
使用在 Delphi 中创建的 C++ DLL(反之亦然)非常容易,但您需要遵循简单的规则。我假设您正在尝试在 C++ 项目中使用 Delphi DLL:
您必须使用相同的调用约定。默认情况下,Delphi 使用寄存器约定(C++ 术语中的 __fastcall)。所有 Windows DLL 的默认调用约定是 __stdcall,因此首先修改 Delphi 源文件中的函数声明,如下所示:
函数DoSomething(x, y: Integer): Integer; 标准调用;
当您使用 __stdcall 时,C++ 期望 DLL 中的导出函数的名称后跟指定传递给它的参数的总体大小的后缀。因此,您的 DoSomething 例程应该变为 DoSomething@8,考虑到 Integer 的大小是 4 个字节,并且 .dpr 文件中的导出部分应该如下所示:
导出
DoSomething名称'DoSomething@8'
使用函数声明创建 C++ 标头并将其包含到您的 C++ 项目中:
int __ declspec (dllimport) __ stdcall DoSomething( int x, int y);
如果您使用 C++ Builder 或 Visual C++,请使用创建导入库 (.lib) 的 implib 实用程序。还有一个随 VC++ 一起提供的 lib 工具,它可以做同样的事情。然后用那个 .lib 文件而不是 .dll 链接。
不,Delphi 不生成 lib 文件。它对他们没有用。
有多种方法可以从 DLL 创建 lib 文件。例如,您可以使用implib,如果它与您的 Delphi 版本一起提供。