我希望它能够创建dll和LIB。因为这个DLL是静态链接到另一个CPP DLL。 所以我必须有lib文件。是否有可能得到一个delphi项目来创建一个lib文件作为项目的输出?
我使用的是德尔福4的IDE
我希望它能够创建dll和LIB。因为这个DLL是静态链接到另一个CPP DLL。 所以我必须有lib文件。是否有可能得到一个delphi项目来创建一个lib文件作为项目的输出?
我使用的是德尔福4的IDE
不,Delphi不生成lib文件。它对他们没有用处。
有办法create a lib file from a DLL。例如,如果您的Delphi版本附带,您可以使用implib。
使用在Delphi中创建(如反之亦然),C++的DLL是很容易的,但你需要遵循简单 规则。我假设您正在尝试在C++项目中使用Delphi DLL:
您必须使用相同的调用约定。默认情况下,Delphi使用寄存器约定(__fastcall以 C++术语)。所有的Windows DLL默认调用约定是__stdcall,所以首先修改 函数声明在Delphi源文件如下:
功能 DoSomething的(X,Y:整数):整数; stdcall;
当您使用__stdcall时,C++希望DLL中的导出函数具有名称后跟后缀,指定传递给它的参数的总大小。因此,你的DoSomething例程应 成为DoSomething的@ 8,考虑到整数的大小是在.dpr文件4个字节,你的出口部分 应该是这样的:
出口
DoSomething的名 'DoSomething的@ 8'
创建C++与函数声明头并将其包含到C++项目:
INT __ declspec(dllimport的)__ STDCALL DoSomething的(INT X,INT Y);
如果您使用C++ Builder或Visual C++,请使用创建导入库(.lib)的implib实用程序。还有一个与VC++一起提供的lib工具,它可以做到这一点。然后链接到该.lib文件而不是.dll。
10x为完整的解释! – 2010-08-11 07:39:24
谢谢,我也有人逗我,我可以使用Lib.exe来创建lib文件。 – 2010-05-16 09:10:34