在vba中导入Delphi dll

时间:2014-09-24 11:31:34

标签: vba delphi dllimport

对于一个项目,我需要导入一个用Delphi制作的DLL并调用一些函数。 但是,项目团队中没有人知道如何完成这项工作。我们公司的主管用C ++编写了一个程序来打开DLL并调用函数,但他没有VBA的经验。

我们的项目是调用函数并将一些参数从excel工作表传递给程序(燃气轮机模拟项目)。我们的第一个问题是:我们如何在VBA中加载Delphi dll?我读到了dllimport函数,但我仍然不知道如何使用这个函数。

例如,在dll中有一个函数:d4868activateLog Delphi中的代码如下:

function activateLog (const filename: PAnsiChar):Integer;

我们如何称呼此功能?

1 个答案:

答案 0 :(得分:4)

您无法从VBA调用该函数,因为它使用register调用约定。 VBA只能导入stdcall个函数。

您可以将Delphi代码更改为:

function d4868activateLog(const filename: PAnsiChar): Integer; stdcall;

然后在VBA中你会写:

Private Declare Function d4868activateLog Lib "mydll.dll" (ByVal filename As String) As Long